Frontend
The best skills for engineering-related work, like building, testing, reviewing and shipping software.
figure-figcaptionthedaviddias/Front-End-ChecklistWrap captioned images in figure and figcaption elements for valid markup★74.6K
figure-figcaptionWrap captioned images in figure and figcaption elements for valid markup
file-upload-accessibilitythedaviddias/Front-End-ChecklistMake file upload inputs and drop zones usable with keyboard and screen readers★74.6K
file-upload-accessibilityMake file upload inputs and drop zones usable with keyboard and screen readers
flashing-contentthedaviddias/Front-End-ChecklistPrevent flashing content that could trigger seizures in sensitive users★74.6K
flashing-contentPrevent flashing content that could trigger seizures in sensitive users
flexbox-patternsthedaviddias/Front-End-ChecklistApply Flexbox patterns for alignment, spacing and one dimensional layouts★74.6K
flexbox-patternsApply Flexbox patterns for alignment, spacing and one dimensional layouts
focus-managementthedaviddias/Front-End-ChecklistMove and restore focus during dialogs, route changes and dynamic updates★74.6K
focus-managementMove and restore focus during dialogs, route changes and dynamic updates
focus-not-obscuredthedaviddias/Front-End-ChecklistMake sure sticky headers and banners never hide the focused element★74.6K
focus-not-obscuredMake sure sticky headers and banners never hide the focused element
focus-orderthedaviddias/Front-End-ChecklistCheck that keyboard focus moves through the page in a logical order★74.6K
focus-orderCheck that keyboard focus moves through the page in a logical order
focus-stylesthedaviddias/Front-End-ChecklistAdd visible custom focus indicators so keyboard users see where they are★74.6K
focus-stylesAdd visible custom focus indicators so keyboard users see where they are
form-field-multiple-labelsthedaviddias/Front-End-ChecklistGive each form field a single label so screen readers announce it once★74.6K
form-field-multiple-labelsGive each form field a single label so screen readers announce it once
form-labelsthedaviddias/Front-End-ChecklistAttach a visible label to every form control with label for or wrapping★74.6K
form-labelsAttach a visible label to every form control with label for or wrapping
form-validationthedaviddias/Front-End-ChecklistValidate forms accessibly with clear messages that screen readers announce★74.6K
form-validationValidate forms accessibly with clear messages that screen readers announce
frame-titlethedaviddias/Front-End-ChecklistGive iframes and frames a title so screen readers say what they contain★74.6K
frame-titleGive iframes and frames a title so screen readers say what they contain
has-selectorthedaviddias/Front-End-ChecklistReplace JavaScript class toggling on parents with the CSS :has selector★74.6K
has-selectorReplace JavaScript class toggling on parents with the CSS :has selector
heading-hierarchythedaviddias/Front-End-ChecklistUse a logical heading hierarchy from h1 down so structure is clear to readers★74.6K
heading-hierarchyUse a logical heading hierarchy from h1 down so structure is clear to readers
heading-orderthedaviddias/Front-End-ChecklistKeep heading levels in order so no level is skipped in the outline★74.6K
heading-orderKeep heading levels in order so no level is skipped in the outline
horizontal-scrollthedaviddias/Front-End-ChecklistStop horizontal scrolling at 320px width and 400% zoom for WCAG reflow★74.6K
horizontal-scrollStop horizontal scrolling at 320px width and 400% zoom for WCAG reflow
html-xml-lang-mismatchthedaviddias/Front-End-ChecklistKeep lang and xml:lang in sync for XHTML and polyglot documents★74.6K
html-xml-lang-mismatchKeep lang and xml:lang in sync for XHTML and polyglot documents
html5-semantic-elementsthedaviddias/Front-End-ChecklistUse header, nav, main, article and footer elements for page structure★74.6K
html5-semantic-elementsUse header, nav, main, article and footer elements for page structure
identical-links-same-purposethedaviddias/Front-End-ChecklistMake links with the same text and purpose point to the same destination★74.6K
identical-links-same-purposeMake links with the same text and purpose point to the same destination
image-redundant-altthedaviddias/Front-End-ChecklistRemove redundant alt text that repeats nearby captions or link names★74.6K
image-redundant-altRemove redundant alt text that repeats nearby captions or link names
immutable-patternsthedaviddias/Front-End-ChecklistPrefer immutable data updates that avoid hidden mutations in JavaScript★74.6K
immutable-patternsPrefer immutable data updates that avoid hidden mutations in JavaScript
input-image-altthedaviddias/Front-End-ChecklistGive image buttons alt text that says what the button does★74.6K
input-image-altGive image buttons alt text that says what the button does
input-typesthedaviddias/Front-End-ChecklistUse semantic input type values like email, tel and date for better input★74.6K
input-typesUse semantic input type values like email, tel and date for better input
javascript-inlinethedaviddias/Front-End-ChecklistMove inline JavaScript out of HTML attributes and into script files★74.6K
javascript-inlineMove inline JavaScript out of HTML attributes and into script files
js-redirectsthedaviddias/Front-End-ChecklistReplace JavaScript redirects with server side redirects that crawlers can follow★74.6K
js-redirectsReplace JavaScript redirects with server side redirects that crawlers can follow
json-safetythedaviddias/Front-End-ChecklistParse JSON safely with error handling so bad input does not crash scripts★74.6K
json-safetyParse JSON safely with error handling so bad input does not crash scripts
keyboard-navigationthedaviddias/Front-End-ChecklistMake every interactive element reachable and usable with the keyboard alone★74.6K
keyboard-navigationMake every interactive element reachable and usable with the keyboard alone
label-content-name-mismatchthedaviddias/Front-End-ChecklistMake visible labels match accessible names so voice control users can use them★74.6K
label-content-name-mismatchMake visible labels match accessible names so voice control users can use them
landmark-one-mainthedaviddias/Front-End-ChecklistInclude exactly one main landmark so screen reader users can jump to content★74.6K
landmark-one-mainInclude exactly one main landmark so screen reader users can jump to content
landmark-regionsthedaviddias/Front-End-ChecklistWrap page regions in proper landmarks so assistive tech can navigate by section★74.6K
landmark-regionsWrap page regions in proper landmarks so assistive tech can navigate by section
lang-attributethedaviddias/Front-End-ChecklistSet a valid lang attribute on html and on foreign language passages★74.6K
lang-attributeSet a valid lang attribute on html and on foreign language passages
link-textthedaviddias/Front-End-ChecklistWrite descriptive link text so each link makes sense out of context★74.6K
link-textWrite descriptive link text so each link makes sense out of context
list-structurethedaviddias/Front-End-ChecklistUse correct ul, ol and li structure so lists are announced as lists★74.6K
list-structureUse correct ul, ol and li structure so lists are announced as lists
listitemthedaviddias/Front-End-ChecklistMake sure every li sits inside a ul or ol and ARIA listitem has a list parent★74.6K
listitemMake sure every li sits inside a ul or ol and ARIA listitem has a list parent
loading-indicatorsthedaviddias/Front-End-ChecklistShow loading indicators so users know when content is still on its way★74.6K
loading-indicatorsShow loading indicators so users know when content is still on its way
logical-propertiesthedaviddias/Front-End-ChecklistUse CSS logical properties so layouts flip correctly for right to left text★74.6K
logical-propertiesUse CSS logical properties so layouts flip correctly for right to left text
meta-refreshthedaviddias/Front-End-ChecklistReplace meta refresh redirects with real server side redirects★74.6K
meta-refreshReplace meta refresh redirects with real server side redirects
modal-accessibilitythedaviddias/Front-End-ChecklistMake modal dialogs keyboard accessible with focus trapping and Escape to close★74.6K
modal-accessibilityMake modal dialogs keyboard accessible with focus trapping and Escape to close
modern-array-methodsthedaviddias/Front-End-ChecklistUse modern array and object methods like map, filter and Object.entries★74.6K
modern-array-methodsUse modern array and object methods like map, filter and Object.entries
naming-conventionsthedaviddias/Front-End-ChecklistKeep CSS class names consistent with one naming convention across components★74.6K
naming-conventionsKeep CSS class names consistent with one naming convention across components
navigation-landmarkthedaviddias/Front-End-ChecklistMark up site navigation with nav landmarks that screen readers can jump to★74.6K
navigation-landmarkMark up site navigation with nav landmarks that screen readers can jump to
noscript-tagthedaviddias/Front-End-ChecklistAdd noscript fallback content so pages still work without JavaScript★74.6K
noscript-tagAdd noscript fallback content so pages still work without JavaScript
object-altthedaviddias/Front-End-ChecklistProvide alternative text for object and embed elements that show content★74.6K
object-altProvide alternative text for object and embed elements that show content
offline-fallbackthedaviddias/Front-End-ChecklistAdd an offline fallback page so users on flaky networks still see something★74.6K
offline-fallbackAdd an offline fallback page so users on flaky networks still see something
orientationthedaviddias/Front-End-ChecklistTest layouts in portrait and landscape and remove needless orientation locks★74.6K
orientationTest layouts in portrait and landscape and remove needless orientation locks
pagination-accessibilitythedaviddias/Front-End-ChecklistMake pagination controls accessible with clear labels and current page state★74.6K
pagination-accessibilityMake pagination controls accessible with clear labels and current page state
paste-inputsthedaviddias/Front-End-ChecklistAllow pasting into all form inputs, including password and code fields★74.6K
paste-inputsAllow pasting into all form inputs, including password and code fields
pluralizationthedaviddias/Front-End-ChecklistHandle plural forms correctly for every locale instead of simple count strings★74.6K
pluralizationHandle plural forms correctly for every locale instead of simple count strings
pwa-installabilitythedaviddias/Front-End-ChecklistMake a web app installable as a PWA and ready for PWA Builder store submission★74.6K
pwa-installabilityMake a web app installable as a PWA and ready for PWA Builder store submission
reduced-motionthedaviddias/Front-End-ChecklistRespect reduced motion preferences so animations can be turned down★74.6K
reduced-motionRespect reduced motion preferences so animations can be turned down