内容简介:本来我也不太关注一些交互的问题,但是在处理IE11下的svg能够focus(就是tab时候能够获取焦点)时候,发现原来tabindex也是大坑。每一次兼容性问题背后,都是有相关问题的好几个标准,一个标准还有好几个版本,不同的时期的浏览器,实现的又有差异,只要有一个浏览器和其它浏览器行为不同,就会被定义为你有bug。PS: 最近搞兼容性好累。使用之前先看看这篇文章tabindex 的最大值不应超过 32767。如果没有指定,它的默认值为 -1。
本来我也不太关注一些交互的问题,但是在处理IE11下的svg能够focus(就是tab时候能够获取焦点)时候,发现原来tabindex也是大坑。每一次兼容性问题背后,都是有相关问题的好几个标准,一个标准还有好几个版本,不同的时期的浏览器,实现的又有差异,只要有一个浏览器和其它浏览器行为不同,就会被定义为你有bug。PS: 最近搞兼容性好累。
tabindex值的范围
使用之前先看看这篇文章 dont-use-tabindex-greater-than-0
tabindex 的最大值不应超过 32767。如果没有指定,它的默认值为 -1。
还有一个好玩的z-index属性,真可怕。
具体取决于整数的值:
- tabindex=负值 (通常是tabindex=“-1”),表示元素是可聚焦的,但是不能通过键盘导航来访问到该元素,用JS做页面小组件内部键盘导航的时候非常有用。
-
tabindex="0"
,表示元素是可聚焦的,并且可以通过键盘导航来聚焦到该元素,它的相对顺序是当前处于的DOM结构来决定的。 - tabindex=正值,表示元素是可聚焦的,并且可以通过键盘导航来访问到该元素;它的相对顺序按照 tabindex 的数值递增而滞后获焦。如果多个元素拥有相同的 tabindex ,它们的相对顺序按照他们在当前DOM中的先后顺序决定。
根据键盘序列导航的顺序,值为 0
、非法值、或者没有 tabindex 值的元素应该放置在 tabindex 值为正值的元素后面。
element的tabbable和focusable
元素还分为focusable和非focusable,如果使用了tabindex就可以改变相关的行为,看参考链接的资料,这里做一下记录,方便以后回顾。
focusable和tabbable的相关解释
不翻译了,直接上链接what-is-focusable
focusable的兼容性表格
兼容性表格,看着兼容性表格还是比较喜人。
IE11下SVG元素默认可以focusable
IE11下有一个奇怪的现象,就是svg默认可以获取焦点(focus),尤其是在登录界面,input前后有prefix和suffix时,尤其别扭。官方一直到 EdgeHTML
时代的某个版本才修复,看这里 microsoft-edge Support tabindex in SVG, don't make every
问题的原因
IE 11下的svg元素默认是focusable的,也就是说其它浏览器svg元素默认是不能获取焦点的,这就造成了,当input有prefix和suffix的svg时,tab进行表单输入切换就很麻烦,被认为是bug。
例如:
<form> <svg></svg> <input type="text"/> <svg></svg> <input type="text"/> </form> 复制代码
解决方案
解决方案也很简单
<svg focusable="false"><svg> 复制代码
如果全局很多svg就很难受了,所以推荐使用 ally.js
解决。
ant-design组件库
因为工作中使用的是 ant-design-vue
所以顺便了解了下,发现
ant-design
的已经解决了这个事情看 ant-design-icons Set svg default focusable=false 这里。
以上所述就是小编给大家介绍的《前端小纠结--IE11下SVG元素默认focusable=true》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 前端小纠结--WebSocket实战
- 前端小纠结--VS Code调试配置分享
- 前端小纠结--约定式提交和自动生成`changelog`
- 前端小纠结--集成gitflow和standard-version使用
- 悟懂 MapReduce,不纠结
- 为什么你还在纠结于语法糖?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机程序设计艺术(第2卷)
高德纳 / 机械工业出版社 / 2008-1 / 109.00元
《计算机程序设计艺术:半数值算法(第2卷)(英文版)(第3版)》主要内容:关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷已经组成了程序设计理论和实践的惟一的珍贵资源,无数读者都赞扬Knuth的著作对个人的深远影响,科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员已经成功地将他的“菜谱式”的解应用到日常问题上,所有人都由于Knuth在书中表现出的博......一起来看看 《计算机程序设计艺术(第2卷)》 这本书的介绍吧!