mcpField
B
bevy-a11y

bevy-a11y

github.com/chrisgliddon设计与 UI2659 次安装9 周前更新
代码仓库

关于 bevy-a11y

面向 Bevy 游戏开发者的无障碍设计技能,涵盖输入、界面、音频、镜头与测试。以游戏无障碍指南、WCAG 和平台要求为依据,并强调残障玩家实测及证据记录。

主要功能

  1. 01输入重映射与多设备支持
  2. 02无指针界面导航与语义
  3. 03字幕、音频描述及视觉提示
  4. 04动作、闪光与镜头效果控制
  5. 05输入、对比度和字幕审计脚本
  6. 06残障玩家测试与整改记录

适用场景

  1. 01在设计阶段检查游戏机制的无障碍需求
  2. 02为自定义 Bevy 界面规划焦点与屏幕阅读器支持
  3. 03发布前核验输入映射、对比度和字幕
  4. 04为平台审核整理测试结果与整改证据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chrisgliddon/bevy-skills --skill bevy-a11y

安装后在 Claude Code 中输入/bevy-a11y确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
captions-audio-communication.md
input-and-adaptive-controllers.md
requirements.md
screen-readers-and-navigation.md
testing-and-evidence.md
tooling.md
visual-cognitive-motion.md
scripts/
audit_input_map.py
check_contrast.py
validate_captions.py
tests/
test_scripts.py
tests/fixtures/
contrast.json
en-US.vtt
fr-FR.vtt
input-map.json

详细介绍

Bevy 0.19 — 游戏无障碍

无障碍是一项贯穿全局的产品要求。应从输入、UI、音频、摄像机、叙事、多人游戏和存档系统的设计阶段就开始考虑;仅在事后补上标签和字幕,无法解决游戏机制本身的无障碍问题。

工作标准

使用以下全部四个层面:

  1. 将 Xbox Accessibility Guidelines 作为面向公众的游戏专用工程基准。
  2. 参考 WCAG 2.2 标准,在适用于游戏 UI/内容的范围内以 AAA 级为目标。
  3. 满足每个发售平台的要求及认证指南。
  4. 邀请残障玩家使用自己的辅助技术进行可用性测试。

WCAG AAA 并非适用于所有原生游戏的通用认证,自动化检查也无法证明符合标准。请记录范围、例外情况、设备、测试版本、发现的问题以及修复证据。参见要求。

优先落实这些基础功能

  • 所有游戏玩法和 UI 操作均不依赖特定设备、可重新映射、经过冲突检查、可持久保存,并且无需指针即可通过菜单访问。
  • 输入支持热插拔、同时使用多个设备、每位玩家使用多个控制器、未知控件、可调节的死区/灵敏度,以及数字输入的模拟替代方案。
  • 按住、重复按键、组合键、快速时序和精确输入均提供切换、时序调整或辅助选项。
  • UI 具有确定的焦点顺序、可见焦点、语义角色/名称/状态、可缩放的文本/布局、足够的对比度,并且不只通过颜色传达信息。
  • 对话和有意义的音频提供同步隐藏字幕;有意义的视觉事件提供旁白/音频描述或同等提示。
  • 为摄像机抖动、动态模糊、闪光、自动运动及其他影响前庭系统/光敏性的效果设置安全默认值,或提供独立控制选项。
  • 无障碍设置在首次开始游戏前即可使用,并且在重新映射按键、更改语言、断开连接和迁移存档后仍可正常使用。

Bevy UI 语义和焦点

DefaultPlugins 包含 InputFocusPlugin。请显式添加导航插件,并将无障碍名称设置在与交互控件相同的实体上:

use bevy::{
    input_focus::{
        directional_navigation::DirectionalNavigationPlugin,
        tab_navigation::TabNavigationPlugin,
    },
    prelude::*,
    ui::auto_directional_navigation::AutoDirectionalNavigation,
};

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            TabNavigationPlugin,
            DirectionalNavigationPlugin,
        ))
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(Camera2d);
    commands.spawn((
        Button,
        AccessibleLabel::new("Start game"),
        AutoDirectionalNavigation::default(),
        children![Text::new("Start game")],
    ));
}

焦点、悬停、指针捕获和屏幕阅读器焦点彼此相关,但并不相同。请测试键盘、方向键/摇杆、开关式扫描、触摸、指针和真实的屏幕阅读器。自定义控件应使用 AccessKit 节点,并公开不断变化的值/状态,而不只是静态标签。参见屏幕阅读器和导航。

自适应控制器和无障碍控制器

自适应控制器通常通过标准游戏手柄/HID 映射接入。不要根据品牌、供应商 ID 或特定设备名称限制功能。应将每个 Gamepad 实体视为一组能力和绑定:

use bevy::prelude::*;

fn read_gamepads(gamepads: Query<(Entity, &Gamepad)>) {
    for (entity, gamepad) in &gamepads {
        let move_axis = gamepad.left_stick();
        let activate = gamepad.just_pressed(GamepadButton::South);
        let extra = gamepad.just_pressed(GamepadButton::Other(0));
        let _sample = (entity, move_axis, activate, extra);
    }
}

使用 default-features = false 时,原生设备发现需要 Bevy 的 bevy_gilrs 功能,而不仅仅是 gamepad。leafwing-input-manager 0.21 是兼容的可选操作层,但它不会替你创建无障碍设置、UI、持久化功能或游戏机制替代方案。参见输入和自适应控制器。

按访问需求划分的要求

领域不可妥协的实现要求
盲人/低视力语义化 UI、完整的非指针导航、语音朗读/音频描述、文本缩放、醒目的焦点/对比度、非颜色提示
失聪/听力障碍带有说话者标识和有意义声音提示的隐藏式字幕、视觉/触觉替代方案、独立的混音控制
运动障碍完整的按键重映射、同时使用多个设备、无需强制长按/连击/组合键、时机/瞄准/移动辅助、尽可能支持暂停
认知/学习障碍一致的导航、通俗易懂的语言、目标历史记录、教程、可调节的节奏/难度、低干扰模式
言语/沟通障碍不强制使用语音、无障碍文本聊天;在沟通为核心的场景中提供语音转文本/文本转语音
光敏/前庭障碍闪烁安全、减少动态效果、震动/视野范围(FOV)/模糊控制、不依赖关键视差/自动运动

请阅读视觉、认知与动态效果和 字幕、音频与沟通。

实现关卡

  • 在输入映射冻结前,对操作清单运行 scripts/audit_input_map.py。
  • 对每个主题/状态组合运行 scripts/check_contrast.py;单独抽查图像/视频背景。
  • 对源文件和本地化的 VTT/SRT 文件运行 scripts/validate_captions.py。
  • 执行测试与证据中的手动测试矩阵。
  • 在验证发布版本及受支持的输入/平台组合之前,不要宣传无障碍功能标签。

脚本格式和 CI 示例见工具。

另请参阅

  • bevy-input-actions — 逻辑操作、按键重映射、设备热插拔、Steam Deck 和自适应控制器集成。
  • bevy-audio — 字幕/提示的边界、类别混音、空间音频的限制,以及浏览器音频启动。
  • bevy-ui — 布局、文本、交互和焦点 API。
  • bevy-cargo-features — 控制器和 UI 后端。
  • bevy-fluent — 本地化文本和字幕。
  • bevy-cameras — 震动、视野范围(FOV)和视口控制。
  • bevy-physics — 基于物理构建的无障碍角色移动、瞄准和时机机制。
  • bevy-testing — 确定性检查和录制证据。
  • bevy-core-concepts — 调度架构。

评论

支持 Markdown