Four quality gate checklists for UI polish: baseline visual review, accessibility (keyboard/focus/ARIA), metadata (titles/meta/social cards), and motion performance. Run these gates before shipping any user-facing change. Trigger: When reviewing UI changes, preparing for release, auditing accessibility, or optimizing web performance.
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Four quality gate checklists for UI polish: baseline visual review, accessibility (keyboard/focus/ARIA), metadata (titles/meta/social cards), and motion performance. Run these gates before shipping any user-facing change. Trigger: When reviewing UI changes, preparing for release, auditing accessibility, or optimizing web performance.
Code works but the UI feels off. The button is 2px misaligned, focus rings are missing, the page title says "undefined", and the hero animation janks on mobile. These are not bugs — they are polish gaps that erode user trust. This skill defines four quality gates that catch polish issues BEFORE they ship.
When to Activate
Before merging any PR that touches UI components
Preparing a feature for release or demo
After a design review surfaces visual inconsistencies
When auditing an existing app for accessibility compliance
Performance profiling shows layout shifts or jank
The Four Quality Gates
Run these gates IN ORDER. Each gate has a checklist. A gate PASSES when all items are checked.
Gate 1: Baseline Visual Review
Visual consistency check against the design system. No tools required — this is a manual/AI review of the rendered output.
Checklist
Spacing is consistent — margins and padding follow the design system scale (4px/8px/16px grid)
Typography hierarchy — headings use the correct font size, weight, and line height from the type scale
Color usage — all colors come from design tokens, no hardcoded hex values in components
Border radius — consistent across similar elements (buttons, cards, inputs)
Alignment — elements are visually aligned (check left edges, baselines, center alignment)
Responsive breakpoints — layout works at mobile (375px), tablet (768px), and desktop (1280px)
Empty states — lists, tables, and search results have designed empty states
Loading states — async content shows skeleton or spinner, not a blank area
Error states — form validation, API errors, and 404 pages are styled
Dark mode — if supported, all components render correctly in both themes
Truncation — long text truncates with ellipsis or wraps gracefully, no overflow
How to Verify
1. Open the page at each breakpoint (375, 768, 1280)
2. Screenshot each state: default, loading, empty, error
3. Compare against design tokens/Figma
4. Check with browser DevTools element inspector for spacing values
Gate 2: Accessibility (a11y)
Keyboard navigation, focus management, ARIA attributes, and screen reader compatibility.
Checklist
Keyboard navigation — all interactive elements reachable via Tab key in logical order
Focus visible — focus ring is visible on all interactive elements (no outline: none without replacement)
Focus trap in modals — Tab cycles within open dialogs, does not escape to background
Escape closes modals — all dialogs, dropdowns, and overlays close on Escape key
Skip to content — page has a "Skip to main content" link as first focusable element
Heading hierarchy — h1 → h2 → h3, no skipped levels, single h1 per page
Alt text on images — decorative images use alt="", meaningful images have descriptive alt
ARIA labels — icon-only buttons have aria-label, custom widgets have proper ARIA roles
Color contrast — text meets WCAG AA (4.5:1 normal, 3:1 large text) — check with axe or Lighthouse
Form labels — every input has an associated <label> or aria-label
Error announcements — form errors are announced to screen readers via aria-live or role="alert"
No auto-play media — audio/video does not auto-play, or has immediate pause control
Touch targets — interactive elements are at least 44x44px on mobile
How to Verify
1. Unplug your mouse. Navigate the entire page with keyboard only.
2. Run axe DevTools or Lighthouse accessibility audit.
3. Test with a screen reader (VoiceOver on Mac, NVDA on Windows).
4. Check with browser DevTools: Accessibility panel → ARIA tree.
5. Verify contrast with Chrome DevTools color picker (shows ratio).
<!-- Icon button with label --><buttonaria-label="Close dialog"><svg>...</svg></button><!-- Live region for errors --><divrole="alert"aria-live="assertive">
{errorMessage}
</div>
Gate 3: Metadata & SEO
Page titles, meta descriptions, Open Graph tags, and social card previews.
Structured data — JSON-LD for relevant content types (Article, Product, FAQ, etc.)
Language — <html lang="en"> (or appropriate language code) is set
Robots — <meta name="robots" content="index, follow"> or appropriate directive
404 page — custom 404 with navigation back to the site
Sitemap — sitemap.xml exists and is linked from robots.txt
How to Verify
1. Check <head> in browser DevTools → Elements
2. Use https://metatags.io to preview social cards
3. Test OG image with https://opengraph.xyz
4. Validate structured data with Google Rich Results Test
5. Check favicon with https://realfavicongenerator.net/favicon_checker
Template
<head><title>Dashboard | MyApp</title><metaname="description"content="Monitor your analytics with real-time charts and reports."><linkrel="canonical"href="https://myapp.com/dashboard"><!-- Open Graph --><metaproperty="og:type"content="website"><metaproperty="og:title"content="Dashboard | MyApp"><metaproperty="og:description"content="Monitor your analytics with real-time charts and reports."><metaproperty="og:image"content="https://myapp.com/og-dashboard.png"><metaproperty="og:url"content="https://myapp.com/dashboard"><!-- Twitter --><metaname="twitter:card"content="summary_large_image"><metaname="twitter:title"content="Dashboard | MyApp"><metaname="twitter:description"content="Monitor your analytics with real-time charts and reports."><metaname="twitter:image"content="https://myapp.com/og-dashboard.png"><!-- Favicon --><linkrel="icon"href="/favicon.svg"type="image/svg+xml"><linkrel="apple-touch-icon"href="/apple-touch-icon.png"></head>
Gate 4: Motion & Performance
Animation smoothness, layout stability, and rendering performance.
Checklist
No layout shift — CLS (Cumulative Layout Shift) < 0.1 — images/embeds have explicit dimensions
Smooth animations — all transitions run on transform and opacity only (GPU-composited)
No forced reflow — reading layout properties (offsetHeight) does not occur inside loops or animation frames
Font loading — font-display: swap or optional — no FOIT (Flash of Invisible Text)