关于移动端Safari中
当然可以给<button>元素设置tabindex值来调整它的聚焦行为——不过先得拆解你遇到的问题:正常情况下<button>是默认可被Tab键聚焦的原生交互元素,不需要额外配置就能进入Tab遍历流。你遇到的跳过问题,大概率是某个隐形配置导致的,下面一步步排查解决:
第一步:排查导致
- 检查是否设置了
disabled属性:如果按钮被标记为disabled,无论tabindex怎么设,它都无法被聚焦,浏览器会直接跳过。 - 检查是否有
tabindex="-1":这个值会让元素只能通过点击或JS主动聚焦,无法被Tab键遍历到。如果你的按钮不小心加了这个,就会出现跳过的情况。 - 检查CSS交互限制:有没有设置
pointer-events: none?这个属性会完全禁用元素的交互能力,包括聚焦;另外user-select: none本身不影响聚焦,但如果搭配其他样式让浏览器误判为非交互元素,也可能出问题。
第二步:手动设置tabindex强制调整聚焦顺序
如果上面的坑都排除了,直接给