High-contrast accessibility: UI design prompt

Palette, type rules and a pasteable prompt for high-contrast accessibility. Also called accessible design, WCAG AAA design, high contrast mode, inclusive UI, a11y-first. WCAG 2.0 (2008), 2.1 (2018), 2.2 (2023); design priority since 2020 legal pressure.

Traits

  • text contrast at 7:1 or better (AAA), UI components at 3:1 minimum
  • large default type (18px+), line-height 1.5+, measure 60-70 characters
  • visible, thick focus indicators (3px) on every interactive element
  • links underlined, buttons look like buttons, never colour alone to signal state
  • big touch targets (44px minimum), generous spacing between them
  • motion minimal and always disabled under prefers-reduced-motion
  • honours forced-colors mode; icons have text labels

Palette

#ffffff page, #0b0b0b text, #005a9c link blue (7:1 on white), #b30000 error, #006400 success, #ffd200 focus ring on dark, #1a1a1a dark surface

Type

Atkinson Hyperlegible (designed for low vision), IBM Plex Sans, Source Sans 3 or Lexend; body 18-20px, headings 700 at 32-48px, minimum 16px anywhere; no light weights

Do

  • test every text/background pair for 7:1 and every border/icon for 3:1 before styling anything else
  • make focus impossible to miss: 3px solid outline plus 2px offset, in a colour that hits 3:1 on every background
  • pair every colour signal with a shape, icon or text (error text plus icon, not red alone)

Don't

  • do not use grey placeholder text under 4.5:1 or thin hairline inputs
  • do not remove outlines, disable zoom, or animate on scroll
  • do not rely on hover; everything must work with keyboard and touch

Known for it: GOV.UK, BBC (GEL), Atkinson Hyperlegible project by Braille Institute, Microsoft Inclusive Design

CSS seed
:root {
  --bg: #ffffff;
   --fg: #0b0b0b;
   --accent: #005a9c;
   --error: #b30000;
   --focus: #ffd200;
   --radius: 4px;
   --focus-ring: 3px solid #005a9c;
   --font: 'Atkinson Hyperlegible',sans-serif
}
Prompt

Build the site to a high-contrast accessibility standard (WCAG 2.2 AAA where possible). Background #ffffff, text #0b0b0b, links #005a9c always underlined, error #b30000 with an icon and text, success #006400. Font Atkinson Hyperlegible: body 19px line-height 1.6 with max-width 66ch, headings 700 at 44/32/24px, nothing under 16px, no weights below 400. All interactive elements at least 44x44px with 12px spacing between them. Buttons: solid #005a9c with white text, radius 4px, 2px border in the same colour so they survive forced-colors mode; secondary buttons have a 2px #0b0b0b border. Focus: outline 3px solid #005a9c, outline-offset 2px on every element; on dark surfaces #1a1a1a use #ffd200. Inputs: 2px #0b0b0b border, visible label above, never placeholder-only. Skip link first in the DOM. Icons decorative (aria-hidden) with adjacent text labels. No autoplay, no parallax; any transition 150ms max and removed under prefers-reduced-motion. Add a visible landmark structure: header, nav, main, footer.
For design.md, .cursorrules or AGENTS.md
## Design direction
Build the site to a high-contrast accessibility standard (WCAG 2.2 AAA where possible). Background #ffffff, text #0b0b0b, links #005a9c always underlined, error #b30000 with an icon and text, success #006400. Font Atkinson Hyperlegible: body 19px line-height 1.6 with max-width 66ch, headings 700 at 44/32/24px, nothing under 16px, no weights below 400. All interactive elements at least 44x44px with 12px spacing between them. Buttons: solid #005a9c with white text, radius 4px, 2px border in the same colour so they survive forced-colors mode; secondary buttons have a 2px #0b0b0b border. Focus: outline 3px solid #005a9c, outline-offset 2px on every element; on dark surfaces #1a1a1a use #ffd200. Inputs: 2px #0b0b0b border, visible label above, never placeholder-only. Skip link first in the DOM. Icons decorative (aria-hidden) with adjacent text labels. No autoplay, no parallax; any transition 150ms max and removed under prefers-reduced-motion. Add a visible landmark structure: header, nav, main, footer.

## Tokens
:root { --bg:#ffffff; --fg:#0b0b0b; --accent:#005a9c; --error:#b30000; --focus:#ffd200; --radius:4px; --focus-ring:3px solid #005a9c; --font:'Atkinson Hyperlegible',sans-serif }

Keep hover and focus-visible states on every interactive element. Do not add a CSS framework.