Design system contents

Accessibility and content

Keyboard, focus, and interaction

Record implemented semantics accurately and keep unresolved behavior visible.

On this page

Interaction register

Interaction register
AreaImplemented behaviorRemaining check or finding
WorkspaceSkip link, current-page links, named phone trigger, Escape closingVerify route focus after navigation and long-menu scrolling.
AppearanceNamed switch, 44px hit area, native preference selectVerify both themes and System changes.
Email codeLabeled fieldset/digits, paste normalization, arrow/backspace navigation, error alertVerify autofill and screen-reader announcements on actual devices.
Section selectorHeadless UI listboxCheck Escape, focus return, and route selection.
Lesson editorPressed-state content buttons and live save statusNot a full ARIA tabs implementation; verify reorder announcements.
Learner reviewDialog name, aria-modal, Escape and backdrop closeMissing focus trap/restoration; small star and close targets.
Video searchClickable filtered suggestions and outside closeMissing combobox semantics and keyboard option selection.
Course assignmentNative checkbox and revoke buttonCheckbox needs an accessible label; visible/accessible revoke naming differs.
FeedbackRequired fields and failure alertMood icons lack descriptive names.
Legacy onboardingVisual task controlscoursePath span has button role without keyboard activation.
Marketing FAQButton with aria-expandedNo aria-controls/hidden-panel semantics; reduced-motion parity missing.

Verified in the isolated preview

Appearance persisted through reload, System followed a device-theme change, and the header switch created an explicit override. The section listbox closed with Escape and returned focus. The phone menu closed with Escape while the unfocused skip link remained offscreen. Pasted code text normalized to six digits without auto-submit; a rejected code produced an alert. An injected lesson conflict preserved local input and displayed recovery instructions.

Practical verification

Use keyboard-only navigation through the shell, one settings form, code inputs, the section listbox, and dialogs. Inspect the accessibility tree and actual focus. A screenshot cannot establish keyboard behavior. Source limitations are documentation findings; this portfolio task does not change either product repository.

Source references

Source references
FileResponsibility
src/components/MainNav.tsxShell semantics
src/components/EmailCodeInput.tsxDigit keyboard behavior
src/components/VideoSearchBox.tsxSearch limitation
src/components/courses-public/logged-in/PrivateCourseView.tsxDialog
marketing/src/components/FAQ.tsxDisclosure

Interface examples

Native TeachKit interfaces with fictional course, account, and learner records. Service responses and media are isolated demonstrations; no customer data or live changes. Captured at 2× resolution or higher. Select an image to inspect it full size.

Fields · Component detail · Light · Desktop · 2280 × 1254 px
Fields · Component detail · Light · Desktop · Focus · 2316 × 1290 px

Source audit: 2026-10-22 · Revision 903bbf05ca9d · Documentation v2.0.0