Ten tests that probe whether the HTML output actually works β not just "does it look different" (that's Design Diversity) but "does the page render correctly, is it accessible, responsive, does the form validate, does dark mode work, does it respect reduced motion, and are error states handled?" Open each result in a browser and inspect.
The verify step is you, in a browser, inspecting the rendered page. Each test lists specific things to check β contrast ratio, keyboard navigation, responsive breakpoint, form behavior. Use the browser's DevTools (F12) to verify. Tasks must produce self-contained .html files.
Setup
Start an Aperio server, paste the prompt, save the rendered HTML, and open it in a browser. Use DevTools to verify.
npm run start:local
# Paste prompt into chat
# Open the resulting HTML in a browser
The Tests
Task 1 β Semantic Structure
Accessible Page Shell β ββββ
Probes: landmarks, heading hierarchy, alt text, DOCTYPE
Paste thisBuild a self-contained HTML page for a personal blog. It must have:
- A header with site title and navigation links (Home, Articles, About, Contact)
- A main content area with at least one article (heading, date, body text, an image with alt text)
- A sidebar with recent posts
- A footer with copyright info
- Use semantic HTML5 elements (header, nav, main, article, aside, footer)
- One h1, proper heading hierarchy (no level skips)
- Every interactive element must have visible :focus-visible styling
- The navigation must use
What to evaluate
View page source β are semantic elements used (header, nav, main, article, aside, footer)?
Is there exactly one h1?
Tab through β does every link/button get a visible focus ring?
Does the image have alt text?
Does the page have a proper <!DOCTYPE html> and viewport meta tag?
Result:
Task 2 β Responsive Design
No Horizontal Scroll at 360px β β βββ
Probes: flex/grid layout, relative units, max-width on media
Paste thisBuild a product listing page for a small online store. Requirements:
- A responsive grid of 6 product cards (image, name, price, add-to-cart button)
- 3 columns on desktop, 2 on tablet, 1 on mobile (360px)
- NO horizontal scroll on the body at any width
- Use CSS Grid or Flexbox β no float-based layouts
- Images must have max-width: 100%
- Use relative units (rem, %, vw) not fixed pixels for widths
- At least 44px touch targets on all buttons
What to evaluate
Resize to 360px β is there horizontal scroll on the body?
Does the grid change from 3 β 2 β 1 column at appropriate breakpoints?
Are touch targets at least 44Γ44px?
Do images scale down without overflow?
Result:
Task 3 β Form Validation
Validated Signup Form β β β ββ
Probes: required fields, input types, error messages, success state, no color-only state
Paste thisBuild a signup form page with the following fields:
- Full Name (required, min 2 chars)
- Email (required, must be valid email format)
- Password (required, min 8 chars, must include a number)
- Confirm Password (required, must match)
- A "Subscribe to newsletter" checkbox
- A submit button
Requirements:
- Client-side validation with meaningful error messages shown near each field
- Error state must NOT be conveyed by color alone β include text or icon indicators
- Success state when all fields pass validation
- Focus must move to the first invalid field on submit
- All labels must be properly associated with inputs (use label elements)
- Use aria-invalid and aria-describedby for accessibility
- Self-contained single HTML file
What to evaluate
Submit empty β do error messages appear near each field?
Enter invalid email β does it reject it with a message?
Enter mismatched passwords β does it show the mismatch?
Are errors conveyed by text, not just red borders?
Does focus move to the first invalid field?
Fill correctly β does the form show a success state?
Paste thisBuild a page with a data table of 15 imaginary employees (Name, Department, Role, Salary, Start Date). Must have:
- A search input that filters rows as you type
- Sortable columns β click a column header to sort ascending, click again to sort descending
- Table must scroll horizontally on narrow screens (within an overflow-x: auto container)
- Use proper table markup (table, thead, th, tbody, tr, td)
- Sortable column headers must be buttons with visible focus styles
- Show the current sort direction with an arrow indicator
- Display a "No results" message when the search filters out all rows
What to evaluate
Type in search β do rows filter in real time?
Click a column header β does sorting work? Does it toggle direction?
Resize narrow β does the table scroll horizontally without breaking the page?
Type something that matches nothing β does "No results" appear?
Are column header buttons keyboard-accessible?
Result:
Task 5 β Theme Support
Dark Mode with prefers-color-scheme β β β ββ
Paste thisBuild a documentation-style page that supports both light and dark modes:
- Title: "Aperio API Reference"
- 3 sections of API documentation (each with a heading, description, and a code sample)
- A sidebar with navigation links to each section
- Must respect the user's system color scheme via prefers-color-scheme media query
- Body text must maintain 4.5:1 contrast ratio in BOTH themes
- Code samples must have a distinct background in both themes
- Use CSS custom properties for all theme colors (no hardcoded colors in element rules)
- Include a small manual theme toggle button as a fallback
- Transition between themes smoothly (0.3s ease on color/background properties)
What to evaluate
Toggle system theme β does the page switch correctly?
Check contrast in both themes (DevTools β select element β color contrast checker)
Does the manual toggle work and override the system preference?
Are code blocks readable in both themes?
Result:
Task 6 β Motion Safety
Respect prefers-reduced-motion β β β ββ
Probes: prefers-reduced-motion, animation safety, no decorative motion
Paste thisBuild a landing page for a product launch with animations:
- A hero section with a fade-in title animation (opacity 0β1 over 1s)
- A count-up number animation (0 to 10,000 over 2s) showing "Users"
- Cards that slide up on scroll with a staggered delay
- A pulsing CTA button
Requirements:
- ALL animations must be disabled or reduced when prefers-reduced-motion is active
- Use the CSS prefers-reduced-motion media query, not JavaScript
- The page must be fully usable with motion disabled (no content hidden by animation state)
- Animations must be purely decorative β no information conveyed through motion alone
- Use will-change and transform for performant animations
- Self-contained HTML file
What to evaluate
Enable prefers-reduced-motion in DevTools β do all animations stop?
Disable it β do animations work correctly (fade, count-up, slide, pulse)?
Is all content visible and readable with motion disabled?
Are animations performant (no layout thrashing)?
Result:
Task 7 β State Handling
Empty, Error, and Loading States β β β ββ
Probes: async data simulation, error UI, empty state messaging, loading indicator
Paste thisBuild a dashboard page that simulates fetching data from an API. It must handle three states:
1. Loading state: Show a loading spinner while "data is fetching" (simulate with setTimeout)
2. Empty state: If the simulated data returns an empty array, show "No data available" with an illustration or icon and a "Refresh" button
3. Error state: If the simulated fetch fails (randomly, 30% of page loads), show "Something went wrong" with an error icon, a descriptive message, and a "Try again" button
4. Success state: 5 sample data rows in a simple card layout
Use JavaScript that simulates fetching (setTimeout + random Math.random() for failure). Each state must be visually distinct and informative. Use proper ARIA live regions for loading and error announcements.
What to evaluate
Reload 3β4 times β do you see all three states (loading, success, error)?
Is the loading state visible (not a flash)?
Is the error state helpful (message + retry button)?
Is the empty state informative (message + refresh button)?
Are ARIA live regions used?
Result:
Task 8 β Interactive Components
FAQ Accordion with Keyboard Support β β β ββ
Paste thisBuild an FAQ page with an accordion component:
- 6 questions and answers about "Aperio"
- Clicking a question expands the answer and collapses any other open answer
- Clicking the same question collapses it
- Must be fully keyboard accessible β Enter/Space to toggle, Tab between questions
- Use aria-expanded on the toggle button, aria-controls linking to the answer panel
- Animate the expand/collapse smoothly (max-height transition, not display: none)
- Critical: Honor prefers-reduced-motion β disable the animation
- Include a "Expand All" / "Collapse All" button at the top
- Self-contained HTML
What to evaluate
Click a question β does it open and close others?
Tab through and press Enter/Space β does keyboard toggling work?
Check aria-expanded in DevTools β does it update correctly?
Enable prefers-reduced-motion β do animations stop?
Does "Expand All" / "Collapse All" work?
Result:
Task 9 β Async Form Submission
Contact Form with Loading/Error/Success β β β β β
Probes: async submit simulation, disabled state during loading, timeout handling
Paste thisBuild a contact form that simulates async submission:
- Fields: Name (required), Email (required, valid), Subject (required), Message (required, min 20 chars)
- On submit: show a loading spinner on the button, disable all inputs
- Simulate a 2-second API call using setTimeout + Promise
- 80% chance of success: show green success banner "Message sent!" with a checkmark
- 20% chance of failure: show red error banner "Failed to send. Please try again." with retry button
- On success, reset the form after 3 seconds
- On failure, re-enable the form for retry (do NOT clear the user's input)
- All validation messages must use aria-live="polite" for screen reader announcements
- Button must show "Sendingβ¦" with a spinner during loading, and be disabled
What to evaluate
Submit valid form β does it show loading, then success banner, then reset?
Submit multiple times β do you eventually see the 20% error state?
On error β are the user's inputs preserved?
Is the button disabled during loading?
Are aria-live regions used?
Result:
Task 10 β Comprehensive Page
Full Page with All Quality Bar Checks β β β β β
Probes: all quality bar items simultaneously, no regressions
Paste thisBuild a complete landing page for "Aperio" β an AI memory layer product. This page must pass ALL of the following checks simultaneously β do not skip any:
1. Semantic HTML: header, nav, main, section, footer, one h1, no level skips, proper landmarks
2. Contrast: 4.5:1 body text minimum, never convey state by color alone
3. Focus: visible :focus-visible on every interactive element, logical tab order
4. Responsive: no horizontal scroll at 360px, flex/grid layout, relative units
5. Touch targets: 44Γ44px minimum
6. Images: alt text on every meaningful image
7. Dark/Light mode: support prefers-color-scheme with CSS custom properties
8. Reduced motion: honor prefers-reduced-motion
9. Form: at least one form (email signup) with validation, error states, aria-invalid
10. Interactive: at least one interactive component (accordion, tabs, or modal) with full keyboard support and ARIA attributes
Design direction: modern, dark theme as default, purple/navy accent, professional SaaS feel. Self-contained HTML file.
What to evaluate
Run through all 10 checks above β how many pass?
Check each check individually with DevTools and browser inspection
Any one failure means the task fails β all 10 must pass for a Pass score
Result:
Scoring Rubric
Signal
0 = fail
1 = pass
HTML is self-contained
depends on external CSS/JS not loaded
opens directly in a browser
Semantic markup
div soup, no landmarks, heading level skips
proper elements, correct hierarchy
Accessibility
no focus styles, color-only states, missing labels
N/A β task requires a feature that isn't applicable in your testing setup.
Unlike Design Diversity (which tests aesthetic variation), this suite tests whether the varied output actually works.
A model that passes Tasks 1β3 but fails 4β10 can build basic static pages but not interactive/stateful ones.
What the Results Mean
β Your result
9β10/10
Production-ready frontend. The model produces semantic, accessible, responsive pages with proper form validation, theme support, motion safety, and error state handling. Trust it for user-facing interfaces.
β Your result
7β8/10
Strong frontend skills. Handles semantic structure, forms, and responsive design. May miss reduced-motion support, lack aria attributes, or have incomplete error states. Good for most pages with manual QA.
β Your result
4β6/10
Moderate ability. Can produce basic responsive pages but struggles with interactive components (accordions, async forms) and edge states (empty, error, loading). Review accessibility carefully.
β Your result
1β3/10
Limited frontend ability. May produce a basic HTML page with broken or missing interactive features. Not reliable for user-facing production work.
β Your result
0/10
Cannot produce working frontends. The HTML output has fundamental issues β broken layout, no interactivity, or inaccessible markup.