在Firefox中,如果我指定了<a role="button" tabindex="0">Something</a>
,则找不到一种方法使Tab可以使该元素聚焦。
在Safari / Chrome中,它可以正常工作。但是在Firefox中,除非将其更改为<div role="button" tabindex="0">Something</div>
,否则它将无法正常工作。
[当我使用辅助工具时,我可以看到在两种情况下,角色都是pushbutton
,但Firefox完全忽略了<a>
。这是Firefox中的错误,还是我缺少什么?
我在Mac OS上,所以我知道这取决于设置,但是Safari是否能够将给定元素集中在Firefox上,为什么不呢?
如果这是一个按钮,请使用<button>
元素,除非需要JavaScript后备,在这种情况下,请使用href
属性使超链接有效。
无法复制此问题,但是可能是Mac OS + Firefox问题(就像我在Windows上一样,给定的示例在Firefox中按预期工作。]
我能看到的唯一不起作用的原因是您的HTML在语义上不正确,您尚未创建有效的超链接。
超链接必须具有有效的href
属性。没有这个,它将不会注册为超链接。
[如果您不希望将其作为超链接(鉴于您已经给了它role="button"
的事实,对我说您不希望将其作为超链接),那么为什么不使用<button>
元素。
这是要使用的语义正确元素,语义是可访问性的关键。
[如果您打算将此作为超链接(这样做的唯一原因是不提供JavaScript的备用),那么您需要添加href="link"
以使其成为有效的超链接。
您不需要tabindex="0"
,因为默认情况下锚标记是可聚焦的(只要它们如所述有效)。