2013-07-24 54 views
4

很久以前,屏幕閱讀器決定開始閱讀錨定標記< a>中的所有內容作爲特徵。這允許鏈接在視覺上明顯但對屏幕閱讀器不明確的情況下較短。然後
開發人員可以編寫類似的東西,以這條線讓屏幕閱讀器讀取的一切:屏幕閱讀器閱讀錨定標記或角色中的所有內容

<a href="#">More<span style="display: none;"> information about XYZ</span></a> 

然而,隨着HTML5的錨標記成了「透明」,並允許有一個較寬的範圍之內的元素它。 http://dev.w3.org/html5/markup/a.html#a
這個新的鏈接功能非常好,因爲我們可以用正確的語義封裝整個可點擊的對象。
不幸的是,該功能閱讀所有隱藏在一個鏈接現在咬我們:

<li><a href="#"> [ complicated markup ] </a></li> 

在上面的標記,使用任何隱藏的內容將被讀取到屏幕閱讀器。
同樣的問題,當你添加屬性role="dialog"到發生在一個< DIV>

什麼是防止屏幕閱讀器閱讀什麼是真正隱藏時下把戲?

我使用IE10 & Windows 8中講述

+0

請注意,屏幕閱讀器(大部分都是)不會在'display:none'的元素中宣佈文本。 – steveax

回答

1

您可以使用aria-hidden,但小心操作。

http://www.w3.org/TR/wai-aria/states_and_properties#aria-hidden

作者可能,謹慎,使用ARIA隱藏隱藏從輔助技術明顯呈現 內容只有躲在這 內容的行爲意在改善的輔助 用戶的體驗技術通過刪除冗餘或無關的內容。作者 使用詠歎調隱藏從屏幕閱讀器隱藏可見內容必須 確保相同或相當的意義和功能 暴露於輔助技術。

+0

這不起作用。 – jsgoupil

+0

確實如此。我自己做了好幾次。 – isherwood

+0

試一下,它沒有。 Win8,IE10,講述人 http://jsfiddle.net/X9Gz3/ – jsgoupil