FormKit 项目中 ToggleButtons 组件的 ARIA 属性问题解析
2025-06-13 08:42:34作者:冯梦姬Eddie
在 FormKit 项目的最新版本中,开发团队发现并修复了一个关于 ToggleButtons 组件的可访问性问题。这个问题涉及到 ARIA 属性的正确使用,对于确保组件能够被辅助技术正确识别至关重要。
ToggleButtons 组件在之前的实现中存在两个关键的可访问性问题:
- 元素使用了不支持的 ARIA 属性组合
- 缺少必要的 ARIA 属性
具体来说,问题源于按钮元素同时使用了 role="radio" 和 aria-pressed 属性。根据 WAI-ARIA 规范,这两种属性不应该同时出现在同一个元素上,因为它们代表了不同的交互模式。
正确的做法应该是:
- 如果使用
role="button",则应配合aria-pressed属性 - 如果使用
role="radio",则应配合aria-checked属性
开发团队在收到反馈后迅速响应,在 FormKit Pro 0.122.19 版本中移除了冗余的 role="button" 声明,因为按钮元素本身就具有 button 的语义,不需要额外声明。这一改动使得组件更加符合 WAI-ARIA 规范,确保了更好的可访问性支持。
对于开发者而言,理解 ARIA 属性的正确使用非常重要。ARIA 规范为 Web 内容提供了额外的语义信息,帮助辅助技术更好地理解和呈现界面元素。不正确的 ARIA 使用不仅无法提升可访问性,反而可能造成混淆。
FormKit 团队对可访问性问题的快速响应体现了他们对产品质量的重视,这也是开源社区协作模式的优点之一。开发者在使用类似 UI 组件库时,应当定期检查可访问性合规性,确保应用能够服务于所有用户群体。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
项目优选
收起
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
Ascend Extension for PyTorch
Python
758
968
昇腾LLM分布式训练框架
Python
186
231
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
700
1.4 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
880
2.03 K
暂无描述
Dockerfile
780
5.08 K
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
70
22
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.09 K
218