ReferencePanelsHTML checks

HTML checks

Handrix checks the page’s HTML for structural mistakes and common accessibility problems. Results update as you edit.

Where they appear

LocationShows
Checks → Element checks (Props tab)Problems with the selected element(s).
Page settings → Accessibility & validation (Props tab)Every problem on the page, each prefixed with the element it concerns (<img>#hero, <a>.nav-link).

Levels

LevelIconMeaning
Error✕ in redInvalid HTML or something that breaks behavior.
Warning! in amberAn accessibility or reference problem.
Infoi fadedA suggestion. Not counted in tool badges.

Problems are listed errors first, then warnings, then info.

Element rules

RuleLevelTriggered when
Duplicate idErrorAnother element uses the same id.
Id with spacesErrorThe id contains whitespace.
Required attributeErrorimg without src; track without src; map without name; optgroup without label; object without data; embed without src; area without alt; image button (input type="image") without alt; source with neither src nor srcset.
Wrong parentErrorAn element is outside the parent it requires: li in ul/ol/menu; dt/dd in dl (or div); tr in a table section; td/th in tr; thead/tbody/tfoot/caption/colgroup in table; col in colgroup; option in select/datalist/optgroup; optgroup in select; figcaption in figure; summary in details; legend in fieldset; source in video/audio/picture; track in video/audio; area in map; param in object.
Block inside paragraphErrorA p directly contains a block element (div, ul, table, a heading, another p, …). Browsers split the paragraph.
Nested interactiveErrorA link or button contains another interactive element (link, button, form field, iframe, details, label, media with controls, or anything with tabindex).
Nested formErrorA form inside another form.
Missing alt textWarningimg has no alt attribute. An empty alt="" is accepted for decorative images.
Iframe titleWarningiframe without a title.
Empty link or buttonWarningA link (with href) or button has no text, aria-label, aria-labelledby, title, or image with alt text inside.
Form labelWarningA form field (input other than hidden, submit, reset, button and image; select; textarea) has no label for, no wrapping label, and no aria-label, aria-labelledby or title.
Broken referenceWarningfor, list, form, headers, popovertarget, aria-labelledby, aria-describedby, aria-controls, aria-owns, aria-activedescendant, aria-details or aria-errormessage names an id that doesn’t exist; usemap names a map that doesn’t exist.
Skipped heading levelWarningA heading is more than one level below the previous heading (h2 followed by h4).
First headingInfoThe first heading on the page isn’t h1.
Button typeInfoA button inside a form has no type, so it submits the form.
New-tab linkInfoA link with target="_blank" has neither noopener nor noreferrer in rel.

Page rules

RuleLevelTriggered when
Page languageWarning<html> has no lang.
Page titleWarningThe head has no <title> with text.
ViewportInfoNo <meta name="viewport">.
DescriptionInfoNo <meta name="description">.
Several h1InfoThe page has more than one h1.