在网站上使用绝对定位会对语音激活软件产生负面影响吗?
上下文:
我为一家公司工作,他们已经评估了他们网站的可访问性。其中一项评论是:
这里显示的滴答框不是龙捡起来的。这意味着,语音激活用户需要使用键盘命令,以标签到它们上。 通过在CSS中实现以下操作,确保语音激活用户能够访问这些复选框:.checkbox__input { /*位置:绝对;*/ /*:指针;/*左: 0;*/ /*顶部: 0;*/宽度:38 to;高度:38 to;边距: 0;不透明度: 0;}
推荐的属性是他们关于我们应该从CSS中删除什么的建议。
我知道使用position: absolute会将内容从页面的正常流中删除。但是,我们正在将每个复选框包装在一个相对定位的容器中。
他们的评论向我暗示,在内容上使用语音命令存在问题,这是绝对正确的,但我似乎在网上找不到任何关于是否真的存在问题的信息。
对于那些好奇的人,我们不想实现他们提议的更改,因为它会改变我们的页面设计。
发布于 2018-09-14 23:14:40
OP询问的是语音识别,比如龙,而不是屏幕阅读器。
定位与语音识别无关,推荐的CSS在我看来似乎很傻。有两个明显的因素会影响语音识别:
对于这个角色,如果您有一个看起来像复选框的<div>,但是<div> not 有role="checkbox",那么语音识别用户就不能说“单击复选框”。
对于标签,如果复选框的视觉标签与复选框的可访问名称不匹配(这应该是罕见的),则语音识别用户可能无法(直接)选择该复选框。例如:
<input type="checkbox" id="mycheck">
<label for="mycheck">do you like dogs?</label>语音识别用户将能够说“单击狗”或“单击喜欢”或“单击<任何一个单词是可见label>的一部分”。
但是,如果您有这样的内容:
<input type="checkbox" id="mycheck" aria-label="are you a puppy lover?">do you like dogs?然后在视觉上,这两种情况看起来是一样的,但可见的标签,“你喜欢狗吗?”不匹配可访问的名称,“您是小狗情人吗?”,语音识别用户 not 可以说“单击狗”或“单击喜欢”,因为这些词都不在可访问的名称中。他们必须说“点击小狗”或“点击情人”,这是不明显的。
现在,关于定位,如果您有一个对象在复选框的“顶部”,而在顶部的对象收到了单击事件,那么可能定位可能会影响Dragon,但我不确定。对于鼠标用户,如果他们试图单击复选框,但是顶部有某种东西(无论是否在视觉上是明显的),则top对象将接收该事件。如果语音识别用户说“单击<复选框name>”,并且上面有一个对象,我不知道复选框是否会接收到该事件。似乎会选中复选框,因为您使用了复选框的名称,并且不依赖DOM顺序来接收事件。
发布于 2018-09-14 14:47:49
屏幕阅读器在读取文档时通常遵循HTML的顺序(包括脚本生成的任何HTML )。当CSS用于定位内容时,显示在屏幕上的内容可以以与代码中出现的内容不同的顺序显示。
来自宾州无障碍办公室:
position属性用于更改元素的可视位置,而不管它在代码中的位置如何。例如,任何将position:absolute和位置设置为top:0px和left:0px的项都将首先在视觉上显示,即使div是HTML代码中的最终文本。或者,可以在代码中首先列出一个项,但实际上它位于页面的右下角。 这可能是屏幕阅读器可访问性的一个问题,因为内容可以从上下文中读取,因此会引起混淆。
http://accessibility.psu.edu/css/readorderhtml/#fxd
相对位置也存在同样的问题。
克服此问题的唯一方法是允许项目按照在HTML中出现的顺序在屏幕上呈现。这可能意味着对HTML代码、脚本、模板等进行调整。
这并不意味着你不能使用CSS来定位和对齐东西--你当然可以。这只是意味着你不应该使用CSS重新安排事情的顺序。
https://stackoverflow.com/questions/52329871
复制相似问题