普通标签原生具备无障碍支持,但滥用href="#"、用模拟链接、空href等会破坏其语义;修复应优先保留原生,必要时用aria-label补充图标或模糊文案链接,禁用状态需同步aria-disabled="true"与tabindex="-1"。

普通 @#@#@#@#@#@#@#@#@#@0:href 值为 # 且没配 role="link",会被读成“未命名链接”或直接跳过
复用相同文案但指向不同资源:比如多个“下载”按钮,需用 aria-labelledby="download-btn-1-title download-btn-1-desc" 组合出唯一上下文
禁用状态链接:@#@#@#@#@#@#@#@#@#@3(注意:不能只靠 CSS 灰掉,必须加 aria-disabled 和 tabindex="-1")
⚠️ 别混用 aria-label 和 :后者只适用于表单控件; 只认 aria-label / aria-labelledby / 自身文本三者之一,优先级固定,混用反而导致某些读屏器重复播报或跳过。
JavaScript 动态插入的链接怎么保证可访问
DOM 插入后若不手动管理焦点和语义,新链接对键盘和读屏器就是“不可见”的:
- 插入后立即调用
element.setAttribute('tabindex', '0')(仅当它本不该在自然 Tab 顺序中时)
- 如果该链接是操作结果(如“发送成功 → 查看消息”),建议用
aria-live="polite" 包裹区域,让读屏器主动播报新增链接
- 避免用
innerHTML 注入含链接的 HTML 片段——可能丢失事件绑定或 aria- 属性;改用 document.createElement('a') 显式设置所有属性
- 动态加载的分页链接(如“下一页”),要确保每次更新后
aria-current="page" 准确落在当前项上,并移除旧项的该属性
Chrome DevTools 的 Accessibility Inspector 能立刻验证:右键链接 → “Inspect Accessibility Properties”,重点看 Role 是否为 link、Name 是否是你期望的文本、States 中 disabled 或 hidden 是否准确同步。
DeepBI DHTML 页面生成器
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
下载
最常被忽略的一点:链接的视觉焦点样式必须可见且符合 WCAG 对比度要求。哪怕语义全对,一旦 :focus 被 CSS 重置为 outline: none 又没提供替代样式,键盘用户就彻底迷失——这不是 ARIA 能补救的。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










