Billentyűzet és fókusz
Kiszámítható billentyűzetes navigációt és látható fókuszt tervez vezérlőkön, ablakokon, törlésen és navigáción át.
keyboard-focus-engineering
Nézd meg, miben segítMikor hasznos?
Akkor használd, ha egér nélküli használat elakad vagy elveszíti a helyét.
Miben segít neked?
- Logikus tabulátorsorrendet tart fenn pozitív tabindex kerülőmegoldás nélkül.
- Összetett vezérlőhöz megfelelő fókuszmodellt választ.
- Bezárás, törlés vagy navigáció után értelmes helyre állítja a fókuszt.
Például ezt kérheted
Javítsd a táblázatsor műveleti ablakát: bezáráskor a törölt sor esetén is helyes fókusz legyen. Nyitott párbeszédablak mellett töröld az eredeti sort. Bezáráskor a fókusz értelmes, megmaradt táblázatvezérlőre kerüljön a törölt gomb helyett.
Részletes dokumentáció
Itt a skill eredeti útmutatóját, példáit és ellenőrzési szempontjait olvashatod az eredeti nyelven.
Összecsukás
Keyboard & Focus Engineering
Every interactive user journey must work end-to-end with a keyboard alone, with a clearly visible focus indicator, predictable tab order and deliberate focus restoration when overlays open, close or remove elements (WCAG 2.1.1, 2.1.2, 2.4.1, 2.4.3, 2.4.7, 2.4.11).
1. Tab Order & Tabindex Discipline
- DOM order drives focus order: arrange elements in the DOM so
TabandShift+Tabfollow the visual reading and task sequence (WCAG 2.4.3). Avoid CSS reordering (flex-direction: row-reverse, arbitraryorderor absolute positioning) that disconnects visual order from DOM tab order. - Tabindex rules:
- Prefer native focusable elements (
<button>,<a href>,<input>,<select>,<textarea>,<summary>). - Use
tabindex="0"only to add a custom widget's active entry point to the tab sequence or make a scrollable region keyboard-scrollable. - Use
tabindex="-1"for elements targeted by programmatic.focus()(headings, dialog containers or inactive items inside a roving-tabindex composite widget). - Never use positive
tabindex(tabindex="1",2, etc.) — it hijacks page-wide tab order.
- Prefer native focusable elements (
- Bypass blocks (WCAG 2.4.1): provide a working "Skip to main content" link as the first focusable item on shells with repeated navigation.
2. Composite Widgets: Roving Tabindex vs. aria-activedescendant
Complex widgets (tablists, menus, toolbars, radio groups, tree views, grids) must be a single tab stop:
Tab/Shift+Tabmoves into and out of the composite widget as a whole; Arrow keys,HomeandEndmove between items inside it.- Roving
tabindexpattern: give the active itemtabindex="0"and all sibling itemstabindex="-1". On arrow key press, movetabindex="0"to the target item, set the previous item to-1, and call.focus(). aria-activedescendantpattern (for comboboxes where focus stays on the text<input>): keep DOM focus on the<input>, updatearia-activedescendant="option-id"onArrowDown/ArrowUp, and scroll the active option into view (scrollIntoView({ block: 'nearest' })).
3. Focus Lifecycle in Overlays, Deletions & Route Changes
Plan where focus goes before, during and after every structural UI transition:
- Opening a modal dialog or drawer:
- Save
document.activeElementbefore opening. - Move initial focus inside the dialog (first primary field, primary action, or dialog heading/container with
tabindex="-1"). - Contain
Tab/Shift+Tabinside the modal (<dialog>.showModal(),inerton background siblings, or focus trap) and close onEscape.
- Save
- Closing a dialog or popover: restore focus to the opener, or to the nearest logical parent/trigger if the opener was unmounted.
- Deleting an item from a list or table: never let focus drop to
<body>. Move focus to the next sibling item, the previous item if the last one was deleted, or the list heading / "Add" button when empty. - Hidden and inert content: ensure elements inside closed drawers, inactive tabs or collapsed panels are unfocusable (
hidden,inertordisplay: none). Never place a focusable element inside anaria-hidden="true"container.
4. Visible Focus Indicators (WCAG 2.4.7 & 2.4.11)
- Use
:focus-visibleto render a high-contrast focus ring (at least2pxsolid outline withoutline-offsetand>= 3:1contrast). - Never use
outline: nonewithout a visible:focus-visiblereplacement that survivesforced-colors: activemode. - Prevent sticky headers or footers from obscuring focused elements (
scroll-margin-top/scroll-margin-bottom).
Csomagban lévő fájlok 1
SKILL.md
A skillcsomag bemutatása
keyboard-focus-engineering
keyboard-focus-engineering: Szemantikus jelöléssel, billentyűzetes és képernyőolvasós támogatással, használható űrlapokkal és regressziós ellenőrzésekkel bontja le az akadályokat.
Összecsukás
keyboard-focus-engineering
keyboard-focus-engineering: Szemantikus jelöléssel, billentyűzetes és képernyőolvasós támogatással, használható űrlapokkal és regressziós ellenőrzésekkel bontja le az akadályokat.
A teljes skillt és a hozzá tartozó fájlokat tartalmazza (1 fájl). Az alábbi eredeti leírás rögzíti a pontos alkalmazási területét.
A skill eredeti leírása (a forrás nyelvén)
Use when engineering keyboard operability, tab order, roving tabindex, visible focus indicators and predictable focus lifecycle across dialogs, menus and dynamic views.
Telepítsd a skillt, nézd át a forrását és a megbízhatósági beállításait, majd engedélyezd a megfelelő projektben vagy ügynöknél.
Előfeltételek
- A számítógépedre telepített Orqestria.
