Textarea with no accessible name
Part of Documentation, UX & Accessibility, which counts for 15% of the overall score. When this check fires it deducts 8 points from that category, once per scan, no matter how many places it turns up.
What it detects
A <textarea> with no associated <label for>/htmlFor, aria-label, or aria-labelledby has no announced name, so assistive technology cannot tell the user what the field is for. Heuristic: a <textarea> nested directly inside a still-open <label> is detected through a bounded 300-character lookback window, not a real parser, and a name set at runtime through JS is invisible to a static scan.
Why it matters
A textarea with no announced name is indistinguishable from any other empty text box to a screen reader: comments, bios, and feedback fields all sound identical without a name. Multi-line fields are exactly the kind of longer-form input where getting the label wrong costs a user the most re-reading and guessing. It is also one of the simplest possible fixes.
How to fix it
Add a <label for="field-id"> (htmlFor in JSX) pointing at the textarea's id, or wrap the textarea directly inside the label element. Use aria-label="..." only when no visible label fits the layout. A placeholder describing the expected content is a helpful hint but is not a substitute for a real label.
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo