Css 显示:无vs可见性:隐藏vs文本缩进:9999屏幕阅读器如何处理每个屏幕阅读器?
对于屏幕阅读器用户来说,这三个属性之间有什么区别?关于屏幕阅读器如何解释这些属性,这里有一个非常好的总结 简而言之,Css 显示:无vs可见性:隐藏vs文本缩进:9999屏幕阅读器如何处理每个屏幕阅读器?,css,accessibility,screen-readers,Css,Accessibility,Screen Readers,对于屏幕阅读器用户来说,这三个属性之间有什么区别?关于屏幕阅读器如何解释这些属性,这里有一个非常好的总结 简而言之,visibility:hidden和display:none对屏幕阅读器隐藏文本,就像对其他阅读器一样。所有其他方法将对屏幕阅读器“可见”。请参阅: 显示:无:将无法看到或听到* 可见性:隐藏:既看不见也听不见* 文本缩进:9999:将不会被看到,但会被听到 大多数屏幕阅读器不会“说话”显示:无和可见性:隐藏,但很少有像和HtReader这样的屏幕阅读器也会阅读这些内容 关于这一
visibility:hidden
和display:none
对屏幕阅读器隐藏文本,就像对其他阅读器一样。所有其他方法将对屏幕阅读器“可见”。请参阅:
显示:无:将无法看到或听到*可见性:隐藏:既看不见也听不见*
文本缩进:9999:将不会被看到,但会被听到
- 大多数屏幕阅读器不会“说话”显示:无和可见性:隐藏,但很少有像和HtReader这样的屏幕阅读器也会阅读这些内容
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
完整的Answare用于确保chrome不会自动显示/自动填充输入框。 在我的网页(新用户)上,电话字段和密码字段被缓存数据自动填充。为了解决这个问题,我创建了两个虚拟字段,并给它们一个类,使它们对用户不可见。一个jquery函数,用于在分数之后显示并隐藏这些值 用于显示和隐藏的Jquery函数:
$().ready(function() {
$(".fake-autofill-fields").show();
// some DOM manipulation/ajax here
window.setTimeout(function () {
$(".fake-autofill-fields").hide();
}, 1000);
});
类别:
.fake-autofill-fields
{
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
输入字段:
<input style="display:none" type="text" class="fake-autofill-fields" name="fakeusernameremembered"/>
<input style="display:none" type="password" class="fake-autofill-fields" name="fakepasswordremembered"/>
我对屏幕阅读器有一些经验,虽然有限,但我认为他们忽略了CSS。。。现代的屏幕阅读器也会忽略javascript生成的内容吗?最流行的屏幕阅读器JAWS()不是一个专用浏览器,而是一个可以访问其他程序(如浏览器)的应用程序。我不知道它到底是如何工作的,但我认为它只是依靠浏览器的渲染引擎来决定该说什么。为什么要读取隐藏的文本?。它知道隐藏着什么吗?我试图更好地理解这个CSS属性的应用,这样你就知道什么时候使用它了。我用NVDA屏幕阅读器进行了测试,它可以读取那些被显示隐藏的元素:无我指定的链接中有类似的注释。RTIMO。上述可能性在IED中不适用于JAWS,但我下载了NVDA屏幕阅读器软件,它显示:无内容是的,不幸的是,屏幕阅读器在CSS方面与有远见的浏览器一样不一致。标准如上所述,但总会有一些忽略标准。我发现NVDA屏幕阅读器不会读取显示:如果屏幕加载时处于该状态,则无内容;但是如果使用javascript将状态更改为display:none
,屏幕阅读器不会意识到,并读取内容。输入字段:该死,这解释了为什么我在某人的css代码中看到了这个片段,希望他们至少能发表评论