2011-01-25 88 views
8

如何隱藏頁面中的任何元素只能從ScreenReader中隱藏,而不能從普通用戶的頁面隱藏?如何隱藏頁面中的任何元素只能從ScreenReader中隱藏,而不能從普通用戶的頁面隱藏?

我知道這些片段,但我想隱藏某些屏幕redaer,但不是從頁面可視化。屏幕閱讀器應該跳過隱藏的部分。

/* Hide for both screenreaders and browsers 
     css-discuss.incutio.com/wiki/Screenreader_Visibility */ 
    .hidden { display: none; visibility: hidden; } 

/* Hide only visually, but have it available for screenreaders 
    www.webaim.org/techniques/css/invisiblecontent/ ; & j.mp/visuallyhidden ; */ 
    .visuallyhidden { position: absolute !important; 
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 
    clip: rect(1px, 1px, 1px, 1px); } 

/* Hide visually and from screenreaders, but maintain layout */ 
    .invisible { visibility: hidden; } 

回答

0

我不能肯定,如果屏幕閱讀軟件將遵守新的CSS3語音合成模塊任何東西,但它可能是你能考出來的,因爲它似乎是最簡單的選項,如果它的工作原理。

http://www.w3.org/TR/css3-speech/

+0

我認爲許多屏幕閱讀器不支持'@media aural'或'@media speech',儘管這些已經存在很多年了,所以CSS3的演講似乎不太可能 –

+1

糟透了。我希望這些東西能得到支持。這會讓我們的生活變得更容易。 –

3

我覺得上面邁克爾的迴應是完成你想要什麼的最語義妥當的方式。他指出,唯一的問題是屏幕閱讀器\瀏覽器支持。

一種快速而骯髒的方式是將任何想要看到的內容顯示爲圖像,然後爲其指定一個空白替代文本值,例如

<img src="visualcontentonly.png" alt="" /> 

您想隱藏屏幕閱讀器用戶的內容是什麼?處理這個問題可能有更合適的方法。雖然以圖片的形式展示它可能會起作用,但從可訪問性的角度來看,它可能會受到影響,具體取決於內容的內容。

6

使用這個元素:

aria-hidden="true" 

這顯示元素作爲正常視力的用戶,但沒有得到通過屏幕閱讀器大聲朗讀。

+0

對於JAWS 12.0而言,這並非如此。雖然未來的輔助設備可能會支持這一功能,但該功能目前尚未普遍實施。 – theJBRU