2016-05-07 73 views
0

我讀過一些帖子(post1post2aria-hidden="true"從所有用戶代理中隱藏元素。aria-hidden =「true」隱藏所有用戶代理或僅屏幕閱讀器的元素嗎?

aria-hidden(state):表示元素及其所有後代對作者實現的任何用戶不可見或不可察覺。

  • 是否aria-hidden="true"隱藏所有的用戶代理或者只有屏幕閱讀器的元素?
  • 如果是,那麼在bootstrap中,爲什麼carousel-control圖標中的圖標即使使用屬性aria-hedden="true"也可見?

回答

0

即使官方文檔指出元素及其所有的後代是不可見,與aria-hidden="true"標籤元素的確是所有現代瀏覽器中可見。

但是具有此標記的元素對於輔助工具(例如屏幕閱讀器)將不可見。

實施例:https://jsfiddle.net/92s2q861/

此外,使用visibility: hidden;或̶̶d̶i̶s̶p̶l̶a̶y̶:̶ ̶n̶o̶n̶e̶̶ CSS屬性將隱藏他用戶的元件時,DOM在瀏覽器中呈現。但是對於aria-hidden="true"標籤,該元素將被可訪問性工具檢測到。

更新:display: none將在瀏覽器中呈現DOM時隱藏該元素,並且該元素也將被可訪問性工具忽略。

+0

您確定屏幕朗讀器(輔助功能工具)會檢測到具有'display:none'的元素嗎? 'display:none'減少文檔流中的元素。和CSS技巧說別的什麼https://css-tricks.com/places-its-tempting-to-use-display-none-but-dont/ – user31782

+0

是的,你是對的。對不起,這個混亂。我已經更新了答案。 'display:none'也將屏幕閱讀器中的元素隱藏起來。使用Ubuntu中的默認屏幕閱讀器對其進行測試。 –

+0

你是怎麼輸入那個奇怪的被刪除的顯示沒有? –