用途:这是 VS Code 的主要无障碍技能,适用于任何引入或修改交互式 UI 的功能开发。默认用于新功能和贡献,即使需求未明确提到无障碍也不应跳过;更新现有 UI 交互时同样适用。
主要能力与要求:为新的交互式 UI 表面(面板、视图、控件、编辑器浮层、对话框等)提供三项无障碍组件:无障碍帮助对话框(通过无障碍帮助快捷键打开)、可访问视图(以纯文本只读编辑器向屏幕阅读器呈现内容,适用于富视觉内容)、无障碍详细度设置(布尔设置,控制是否播报“打开无障碍帮助”提示)。更新现有功能时,需同步更新其帮助对话框的 provideContent()。
实现方式:帮助对话框需实现 IAccessibleViewImplementation(type = AccessibleViewType.Help),设置 priority、when 上下文键,getProvider 返回 AccessibleContentProvider,并在 .contribution.ts 中通过 AccessibleViewRegistry.register 注册;可访问视图类似,type = AccessibleViewType.View,可选 provideNextContent()/providePreviousContent()。详细度设置需在 AccessibilityVerbositySettingId 与 configuration.properties 中注册,使用 ...baseVerbosityProperty。信号使用 IAccessibilitySignalService.playSignal,优先复用已有 AccessibilitySignal.。动态公告使用 aria.ts 的 alert()(紧急)或 status()(非紧急),消息需本地化且避免重复。键盘导航要求 Tab 顺序、方向键导航、可见焦点、Escape 关闭、模态焦点陷阱;ARIA 要求 aria-label、role、aria-expanded/selected/checked、aria-hidden 等。
适用场景:VS Code 新功能、贡献、面板/视图/控件、命令与工作流、workbench/editor/extensions 新贡献,以及现有 UI 交互更新。
限制:资料未提供收费、价格、平台或效果信息;新增信号需先与 @meganrogge 协调,不可自行注册。