HTML5 form elements provide built-in validation attributes: required, pattern, min, max, minlength, maxlength, type (email, url, tel). These work without JavaScript.
CSS pseudo-classes style validation states: :valid, :invalid, :placeholder-shown, :user-invalid. Create intuitive visual feedback.
The ::placeholder pseudo-element customizes placeholder text. The :focus-visible pseudo-class styles keyboard-only focus indicators.
The fieldset and legend elements group related form controls accessibly. Labels with for attribute connect to inputs for screen reader support.
Progressive enhancement: start with HTML validation, enhance with JavaScript for complex rules. Constraint Validation API provides programmatic access: input.validity, input.validationMessage.
Custom validation patterns with regex: pattern="[A-Za-z]{3,}". The title attribute explains the expected format to users.