Назад към всички

keyboard-navigation

// Keyboard accessibility, focus management, and shortcuts.

$ git log --oneline --stat
stars:384
forks:73
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namekeyboard-navigation
descriptionKeyboard accessibility, focus management, and shortcuts.
allowed-toolsRead, Write, Edit, Bash, Glob, Grep

Keyboard Navigation Skill

Expert assistance for keyboard accessibility.

Capabilities

  • Implement keyboard navigation
  • Manage focus
  • Create keyboard shortcuts
  • Handle focus trapping
  • Test keyboard access

Focus Management

// Focus trap for modals
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]);
}

Target Processes

  • keyboard-accessibility
  • focus-management
  • accessibility-implementation