2016-04-27 24 views
1

我在.Net中創建了一個C#窗體窗體應用程序。它有一個主要的形式。主要形式有四列如下ListView控件:JAWS不讀取listview列標題

  1. 年齡
  2. 性別

我填充列表視圖與1列有以下值

  1. 名字 - Rasik
  2. 姓氏 - 比哈里
  3. 年齡 - 32
  4. 性別 - 男

下面是截圖:

enter image description here

我試圖測試其可訪問性專門體健用戶通過JAWS屏幕閱讀器工具。問題是每當我選擇其中一個行時,它只會逐一讀取所有列值的值。它不會隨着它讀取標題文本。我的期望是它應該像 - 名字:Rasik,姓氏:Bihari,年齡:32,性別:男性。

JAWS支持一些鍵盤快捷鍵以明確地具有此行爲。就像如果你按Insert + Ctrl + 1那麼它會像這樣讀取第一列的值 - 名字:Rasik。如果你按Insert + Ctrl + 2那麼它會讀取像這樣的第二列的值 - 姓:比哈里。我希望這種行爲在我們在listView控件中選擇一行時默認,即它應該讀取'列標題文本'中的整行:'列值'對。有沒有人有任何線索,如果有任何需要設置的ListView控件的屬性或JAWS中的任何設置可以幫助?

如果您要查找示例行爲,請轉至Visual Studio -> Debug Menu -> Attach to Process。在「附加到過程」窗口中,有一個「可用過程」組框,其中顯示了您可以附加代碼的所有可用過程的列表。這也是一個listview控件。當我用Visual Studio運行JAWS時,在這個窗口中,當我用鼠標選擇一行時,它很好地讀取了所有列標題文本和列值對。

enter image description here

在同一臺機器JAWS的不同表現爲我的示例應用程序。

回答

1

我可以自己弄明白這一點。實現它不需要額外的編碼。實際上JAWS默認通過配置來抑制這種閱讀行爲。您需要明確配置JAWS以便以<Column Header>-<Column Value>的方式讀取列表視圖的行。

當您的應用程序正在運行並且當前焦點位於所顯示窗體上的列表視圖控件上時,請按<JAWS KEY> + F2。它打開JAWS管理器彈出窗口,顯示所有項目可配置的列表。選擇第二個選項「自定義ListView控件」,然後按OK如下圖所示的快照:

enter image description here

在「自定義頁眉」窗口中,您將看到單選按鈕被選中當前「忽略」,如圖快照如下:

enter image description here

更改的單選按鈕來選擇相應的選項來改變爲列表視圖控件屏幕閱讀行爲。

最令人煩惱的問題是,此配置需要針對出現在應用程序中的每個列表視圖控件單獨完成。沒有集中的機制來一次性配置您的整個應用程序。

注意:因爲默認情況下JAWS配置爲只讀列值當然意味着它適用於特殊用戶。自由科學必須圍繞它進行研究,因爲讀取列標題可能是一次不需要的無關信息。另外,如果特殊用戶需要讀取列標題,則<JAWS KEY> + Ctrl + <Column Header Index>選項總是以該格式讀取。

此外,不同的屏幕閱讀工具,如雷雨風暴,NVDA在這種列表視圖閱讀的情況下具有不同的行爲。