我正在使用AngularJS爲Web應用程序創建分析。該應用程序需要符合508標準。AngularJS和508標準
我知道用於可訪問性的某些設備直接讀取HTML並在元素中使用alt和longDescr屬性,它們獲取網站的內容。
我看到的問題是,如果你看到頁面源(而不是生成的源),當在Angular中使用某些功能時,如ng-view和ng-include,插入頁面的模板內容將不會顯示源代碼,只在生成的源代碼中。
我的問題是,是否存在通過動態插入模板符合508標準的問題?
一般來說,AngularJS的功能與508標準的兼容程度如何?
輔助技術屏幕閱讀器(JAWS,NVDA,VoiceOver等)針對活動DOM而不是原始來源;動態插入模板本身並不是一個阻擋器;但仍然需要確保模板本身是可訪問的,並且插入模板的代碼使用適當的技術來適當地通知屏幕閱讀器:屏幕閱讀器通常不會宣佈新的內容或更改,除非被告知;所以警報,菜單,對話框,錯誤消息以及有時需要現場更新都需要特殊處理。我不熟悉角度在這裏做什麼,如果有的話。 – BrendanMcK 2014-11-25 06:08:31
感謝您的回答。關於輔助技術閱讀活動DOM的部分是我的問題的主要部分。 我可以補充說,至少對於HTML中的語法部分,如果您將「data-」添加到「ng- *」並更改{{data}}以便data-ng-bind,Angular可以符合508標準。 但是,如你所說,我仍然需要知道由Angular製作的DOM更新是否可以被這些輔助技術檢測到。 – pfernandom 2014-11-25 18:58:00
可以檢測到這些更改,但默認情況下通常會被忽略,所以更大的問題是用戶對UI的期望行爲是什麼;對於某些用戶界面,可能需要立即閱讀,對於其他用戶,可能需要保持原樣,直到用戶在那裏瀏覽爲止 - 讀出每個變化可能過於嘈雜!查看屬於WAI-ARIA部分的[aria-live]屬性(http://www.w3.org/TR/wai-aria/states_and_properties#aria-live)屬性;這可以用來向AT發出信號,告知AT在其內容改變時應該讀取特定標籤。 – BrendanMcK 2014-11-25 21:53:51