@accessible/tabbable

中文文档
1.1.2发布于 2020/07/07MITTypeScriptESM + CJS零依赖近 30 天下载 5946

一个函数返回包含节点内所有可制表 DOM 节点的数组.

中文使用文档
文档目录6 节
  1. API 密码
  2. tabbable(rootNode: HTMLElement, includeRootNode: boolean = …
  3. 更多细节
  4. 为什么是叉子?
  5. 信贷
  6. 自由主义

选项卡( )

Bundlephobia Build status NPM Version MIT License

npm i @accessible/tabbable

返回包含节点内所有 * 可制表的 DOM 节点的数组 。 (*"通"有所必备之戒,从下所读取之

以下内容可选取:

  • <button>
  • <input>
  • <select>
  • <textarea>
  • <a> 与 href 或者说 xlink:href 属性
  • <audio> 财务报告和审定财务报表 <videos> 与 controls 属性
  • [contenteditable] 要素
  • 任何非阴性的东西 tabindex

以上任何一项 没有 但是,如果下列任何一种情况也属实,则视为可制表:

  • 负数 tabindex
  • disabled
  • 无论是节点本身 或它的祖先 隐藏通过 display: none 或者说 visibility: hidden
  • 这是一个 <input type="radio"> 另一台电台是 checked

如果您认为应该将节点包含在您的可制表符中 不过不是,你只需要添加 tabindex="0" 故意将它包含在内. (或者,如果它是在你的阵列 但你不希望它,你可以添加 tabindex="-1" 故意将其排除在外。 ) 这也将导致更一致的交叉浏览器行为. 以了解您的特别节点为何可能 没有 包含,参见 "更多细节"页:1.

API 密码

tabbable(rootNode: HTMLElement, includeRootNode: boolean = false): HTMLElement[]

在 rootNode。 。 。 .

订购原则摘要:

  • 首先包括任何带正数的节点 tabindex 属性(1或更高),由升序命令 tabindex 和源头命令.
  • 然后包括任何带零的节点 tabindex 和默认获得焦点(上列)且无正数的元素 tabindex 设置,按源顺序排列.

更多细节

  • Tabbable试图识别在浏览器(而不是死)上可可靠地tabbable的元素. 浏览器在行为上是愚蠢地不一致的,但是——尤其是对于边缘的元素,比如: <object> 财务报告和审定财务报表 <iframe> 所以这意味着 有点 元素为您 能够 选项卡到 有点 浏览器将被排除在结果之外。 (为了更多地了解这种愚蠢的不一致现象,请见此) 令人惊叹的桌子) (中文(简体) ). 使浏览器之间更加一致,并确保您的元素 请求 在你的标签列表 显示在那里, 尝试添加 tabindex="0" 到可标签忽略的边框元素。 。 。 .
  • (说明以上:) 表格的可选性 <iframe>, (中文(简体) ), <embed>, (中文(简体) ), <object>, (中文(简体) ), <summary>,以及 <svg> 实值 浏览器之间不一致,所以如果你需要准确读取其中之一,你应该尝试给它一个 tabindex.(你还需要注意 focusable iE & Edge 中的 SVGs 属性。) 但你也会 没有 能够得到准确的阅读——所以你应该避免依赖它.
  • 无线电组有一些边缘的病例, 你可以避免,总是有一个 checked 每组一个 (这也是你通常应该做的). 如果没有 checked 电台在广播组, 全部 将被认为是可制表的。 (有些浏览器这样做,否则就不行——没有一致性. )
  • 虽然Tabbable试图处理正标签索引, 您不应该使用正标签索引无障碍问题专家似乎对此有一致和明确的同意:依赖文件中要素的顺序.
  • Mac OS X 上的 Safari 不标签为 <a> 默认元素:要获得标准行为,必须更改设置。 Tabbable不知道你是否改变了这个设置,所以它包括 <a> 列表中的元素.

为什么是叉子?

创造者正在寻找一个新的维护者 @accessibile 软件包不需要一些功能 在原版中,这样我就可以用 TypeScript 类型制作一个较小的包,用叉:P

信贷

这间图书馆是从 选项卡

自由主义

麻省理工学院

版本与发布记录

@accessible/tabbable 共发布 8 个版本,首次发布于 2019/12/16;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.2latest2020/07/076 年前
1.1.12020/05/316 年前
1.1.02020/05/316 年前
1.0.42019/12/166 年前
1.0.32019/12/166 年前
1.0.22019/12/166 年前

关于 @accessible/tabbable 的常见问题

@accessible/tabbable 是什么?

一个函数返回包含节点内所有可制表 DOM 节点的数组.

如何安装 @accessible/tabbable?

在项目目录运行 npm install @accessible/tabbable,或使用 pnpm add / yarn add / bun add。

@accessible/tabbable 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@accessible/tabbable 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@accessible/tabbable 可以商用吗?

@accessible/tabbable 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@accessible/tabbable 的下载量有多少?

根据 npm 官方下载统计,@accessible/tabbable 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,946 次,日均约 198 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@accessible/tabbable 还在维护吗?

最新版本 1.1.2 发布于 2020/07/07(6 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/12/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。