CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/web-accessibility-essentials

Web accessibility from the start — always apply semantic HTML, form labels, ARIA attributes, keyboard navigation, live regions, alt text, and heading hierarchy when building any UI component

93

1.24x
Quality

90%

Does it follow best practices?

Impact

98%

1.24x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-1/

Build a Contact Form

Problem/Feature Description

A small business needs a contact form on their website so customers can reach out with inquiries. Build the form using React and TypeScript.

The form should have these fields:

  • Name (required) -- text input
  • Email (required) -- email input
  • Subject -- dropdown select with options: "General Inquiry", "Support", "Billing", "Partnership"
  • Message (required) -- multi-line text area

When the user clicks "Send Message", the form should:

  1. Validate that all required fields are filled in and email is valid
  2. Show inline error messages below each invalid field
  3. Submit the data as JSON to POST /api/contact
  4. Show a success message after submission
  5. Reset the form on success

Business rules:

  • Name must be at least 2 characters
  • Email must be a valid email format
  • Message must be at least 10 characters
  • Show all validation errors at once (not one at a time)
  • Disable the submit button while the request is in flight

Output Specification

Produce:

  • src/components/ContactForm.tsx -- the contact form component
  • src/components/ContactForm.css -- styles for the form
  • Any additional helper files as needed

evals

scenario-1

criteria.json

task.md

tile.json