Motion preference
WBDS core는 ambient OS state에 semantic behavior를 자동 연결하지 않습니다.
- default motion contract: data-wb-motion="full" or omitted;
- explicit reduced contract: data-wb-motion="reduced";
- products may expose their own preference control;
- a product may intentionally translate the OS preference into the explicit WBDS attribute;
- no component should silently switch semantic state representation merely because the browser media query changed;
- reduced/static equivalents remain required where motion is nonessential, vestibularly risky, or necessary for task completion.
Hard floor
모든 component와 core flow에 공통으로 적용되는 최소 기준입니다.
- semantic HTML/native controls first
- accessible name/label for every control
- complete keyboard path
- immediate visible :focus-visible
- state is not color-only
- minimum target sizing appropriate to pointer mode
- explicit motion-reduction path for motion-bearing components
- zoom/reflow without horizontal page scrolling for core flows
- long Korean/English/Japanese strings and unbroken tokens tested
- loading/empty/error/partial/unavailable/disabled states remain understandable
- focus is preserved or intentionally moved after dialog, save, error, async completion
- async announcements are meaningful and restrained rather than token-by-token noise
- component-local horizontal scroll regions remain keyboard reachable; code/table/diff surfaces may scroll locally, but the user must be able to focus and operate the region without a pointer
- Light and Dark semantic mappings preserve the same state meaning, focus visibility and accessibility floor
Responsive QA widths
문서에 명시된 baseline viewport floor입니다.
- 320px
- 375px
- 414px
- 768px
- representative desktop width
Component documentation requirements
Interactive component가 문서화해야 하는 accessibility surface입니다.
- role and semantics
- keyboard keys
- focus entry/exit
- disabled vs read-only distinction
- loading behavior
- error association
- announcement behavior (aria-live only when appropriate)
- pointer/coarse-pointer behavior
- local-scroll behavior where content may overflow its component boundary
- motion fallback/explicit preference behavior where motion is present