键盘导航技能Skill keyboard-navigation

该技能专注于提升Web应用的无障碍访问能力,特别是针对键盘操作。它提供实现键盘导航、管理界面焦点、创建快捷键、处理焦点陷阱(如在模态框中)以及测试键盘可访问性的专业解决方案。核心关键词包括:键盘可访问性、焦点管理、无障碍设计、Web开发、用户体验。

前端开发 0 次安装 0 次浏览 更新于 2/26/2026

名称: 键盘导航技能 描述: 键盘可访问性、焦点管理和快捷键。 允许工具: 读取、写入、编辑、Bash、Glob、Grep

键盘导航技能

提供键盘可访问性的专家协助。

能力

  • 实现键盘导航
  • 管理焦点
  • 创建键盘快捷键
  • 处理焦点陷阱
  • 测试键盘访问

焦点管理

// 模态框的焦点陷阱
function useFocusTrap(ref: RefObject<HTMLElement>) {
  useEffect(() => {
    const element = ref.current;
    if (!element) return;

    const focusableElements = element.querySelectorAll(
      'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
    );
    const first = focusableElements[0];
    const last = focusableElements[focusableElements.length - 1];

    function handleKeyDown(e: KeyboardEvent) {
      if (e.key === 'Tab') {
        if (e.shiftKey && document.activeElement === first) {
          e.preventDefault();
          last.focus();
        } else if (!e.shiftKey && document.activeElement === last) {
          e.preventDefault();
          first.focus();
        }
      }
    }

    element.addEventListener('keydown', handleKeyDown);
    return () => element.removeEventListener('keydown', handleKeyDown);
  }, [ref]);
}

目标流程

  • 键盘可访问性
  • 焦点管理
  • 可访问性实施