用途:该技能打包两种相关组件模式——无障碍数据表格与 Cmd+K 命令面板。两者都依赖 APG Combobox 模式(命令面板直接使用,可排序表头有时间接使用),并须遵守焦点管理规则。它建立在 ARIA 角色、焦点规则与 inert 属性、以及 dialog showModal() 等前置技能之上。
主要能力:数据表格方面,提供原生 table 骨架,用 caption 提供无障碍名称,用 th scope=col/row 关联表头与单元格;aria-sort 支持 ascending、descending、none、other,同一时刻仅一个表头为升序或降序;粘性表头需滚动祖先与 inset 值,且不可与 border-collapse: collapse 同用,应改用 separate 与 border-spacing: 0;虚拟化表格用 aria-rowcount/aria-colcount 与 aria-rowindex/aria-colindex 声明总数与位置。移动端策略包括横向滚动、容器查询卡片重排、隐藏次要列。命令面板方面,输入框用 role=combobox、aria-controls 指向 listbox、aria-expanded 反映弹层状态、aria-autocomplete=list,DOM 焦点保持在输入框,用 aria-activedescendant 引用高亮选项,绝不把 DOM 焦点移入 listbox。
使用方式:提供可渲染的 HTML 示例与多种模式,包括可排序粘性响应式表格、命令面板对话框、不确定态全选复选框、横向滚动表格的粘性首列、以及仅在无输入聚焦时注册 Cmd+K。
适用场景:需要语义化表格、排序、长列表粘性表头、移动端适配,以及键盘驱动的命令面板的前端界面。
限制:Cmd+K 快捷键必须有可见替代按钮,否则违反 WCAG 2.1.1;表格布局不可用 table 或 div role=table;复杂合并单元格需用 id 与 headers 关联;虚拟化需手动声明计数。具体浏览器兼容与性能数据暂未提供。