@html-validate/w3c-data

中文文档
1.20261101.0发布于 2026/11/01MITTypeScriptES Module零依赖构建来源已验证

从W3C规范中抓取的机器可读数据

中文使用文档
文档目录6 节
  1. wai - aria
  2. 使用
  3. 可用的版本
  4. 数据结构
  5. 辅助函数和类型
  6. 版本控制

html -验证W3C数据

该项目包含从W3C规范中抓取的数据:

  • wai - aria

这个包不是供公众使用的,任何版本之间都可能发生破坏性的更改。 使用风险自负!

wai - aria

该包提供了从W3C规范中抓取的关于WAI-ARIA角色、属性和状态的机器可读数据。

使用

您可以通过两种方式访问ARIA数据。

使用工厂函数获取特定版本的ARIA数据:

import { getAriaData } from "@html-validate/w3c-data/aria";

// Get data for a specific version
const { getRoleData } = getAriaData("latest"); // "latest", "1.3" or "1.2"

// Use the data
const alert = getRoleData("alert");
console.log(alert?.category); // "live"

或者直接导入特定的ARIA版本以获得更好的摇树效果:

// Import latest ARIA data
import { getRoleData } from "@html-validate/w3c-data/aria-latest";
// Or import specific versions
import { getRoleData } from "@html-validate/w3c-data/aria-1.3";

可用的版本

数据结构

这个 getRoleData() Helper返回 NormalizedRole 对象:

const alert = getRoleData("alert");
console.log(alert?.category); // "live"
console.log(alert?.superclasses); // ["section"]
console.log(alert?.properties["aria-atomic"]); // { inherited: true, required: false, deprecated: false, default: "true" }

每个角色包含:

  • role -角色名称
  • category -角色类别(abstract, widget, structure, landmark, live,或者 window)
  • superclasses -该角色继承的角色列表
  • subclasses -从该角色继承的角色列表
  • properties -此角色可用的ARIA属性
  • states —此角色可用的ARIA状态
  • name -可访问的名称要求
    • fromAuthor —名称可以从作者开始设置
    • fromContents —名称可以根据内容设置
    • prohibited —“名称”不能设置
    • required -填写姓名
  • requiredParent -所需父角色列表
  • allowedChildren -允许的子角色列表
  • childrenPresentational - DOM后代是否具有表示性

中的每个属性和状态 properties 和 states 对象包含:

  • inherited (boolean) -属性是否继承自超类角色
  • required (boolean) -此角色是否需要该属性
  • deprecated (boolean) -是否弃用该属性
  • default (string | undefined) -属性的默认值,如果有的话

注意:所有属性和状态键都包含 aria- 前缀(例如, "aria-atomic", "aria-expanded")。

辅助函数和类型

该包提供了用于ARIA角色的辅助函数和类型:

  • isValidRole(role: string): role is AriaRole:检查字符串是否为有效的ARIA角色名。
  • getRoleData(role: AriaRole): NormalizedRole获取给定角色的ARIA角色元数据。
  • getRoleData(role: string): NormalizedRole | null获取给定角色的ARIA角色元数据。

版本控制

这个包裹可以 不 遵循语义版本控制,而不是最后一次抓取的日期。 中断更改可能发生在任何更改之间。

版本与发布记录

@html-validate/w3c-data 共发布 33 个版本,首次发布于 2026/02/08;过去 12 个月发布了 33 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.20261101.0latest2026/11/012 天前
1.20261025.02026/10/259 天前
1.20261018.02026/10/1816 天前
1.20261011.02026/10/1123 天前
1.20261004.02026/10/0430 天前
1.20260927.02026/09/271 个月前

关于 @html-validate/w3c-data 的常见问题

@html-validate/w3c-data 是什么?

从W3C规范中抓取的机器可读数据

如何安装 @html-validate/w3c-data?

在项目目录运行 npm install @html-validate/w3c-data,或使用 pnpm add / yarn add / bun add。

@html-validate/w3c-data 支持 TypeScript 吗?

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

@html-validate/w3c-data 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@html-validate/w3c-data 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.16.0 || >= 24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@html-validate/w3c-data 可以商用吗?

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

@html-validate/w3c-data 还在维护吗?

最新版本 1.20261101.0 发布于 2026/11/01(2 天前);至今共发布 33 个版本,其中过去 12 个月发布了 33 个;首次发布于 2026/02/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。