# Websight > Websight is a Chrome extension that scans the page you are on for accessibility issues, gives a score out of 100 with plain-English fixes and a suggested fix snippet per element, and (Pro, a paid upgrade) builds a branded client-ready PDF audit report, multi-page audits, a saved library and CSV/JSON/fix-list exports. Everything runs on the user's computer; no page content is sent anywhere. Made by Luke Rallings, a sole trader in the United Kingdom. Honest limits: automated tools find only part of the accessibility problems on a page. Websight is a testing aid, not a certificate of compliance with WCAG, the European Accessibility Act, the Equality Act 2010 or any other law. It bundles the open-source axe-core engine (MPL 2.0); axe and axe-core are trademarks of Deque Systems, Inc.; Websight is independent of Deque and the W3C. ## Pages - [Home](https://getwebsight.com/): what it does, demo video, screenshots, Free vs Pro, FAQ - [Accessibility audit report template](https://getwebsight.com/accessibility-audit-report-template.html): the nine sections of a client-ready report, with a free sample PDF - [How the accessibility score works](https://getwebsight.com/how-the-accessibility-score-works.html): the exact 0 to 100 formula, worked examples, what the number does not measure - [WCAG 2.2 manual accessibility checklist](https://getwebsight.com/wcag-manual-accessibility-checklist.html): 25 printable checks an automated scanner cannot do - [Sample report (PDF)](https://getwebsight.com/files/websight-sample-audit-report-harbour-bakery.pdf): a real generated report on a fictional site - [Privacy policy](https://getwebsight.com/privacy.html) - [Terms of use](https://getwebsight.com/terms.html) ## Contact hello@careupkeep.co.uk ## Reference Independent plain-English explanations (not W3C text). Each rule page has who it affects, a live broken versus fixed example, a two-minute hand test, copyable before and after code and the WCAG mapping. Each criterion page says plainly whether a scanner can check it. - [Accessibility rules explained](https://getwebsight.com/rules/): hub for the 64 automated WCAG 2.2 A/AA checks Websight runs (plus 6 axe-core rules it does not run, marked as such), searchable by theme and level - [Images](https://getwebsight.com/rules/themes/images.html): Alt text for photos, icons, SVGs, image buttons and image maps. - [Forms](https://getwebsight.com/rules/themes/forms.html): Labels, names and autofill hints on fields, selects, toggles and buttons. - [Links and buttons](https://getwebsight.com/rules/themes/links-and-buttons.html): Every control needs a name that says what it does. - [Colour](https://getwebsight.com/rules/themes/colour.html): Contrast ratios and not relying on colour alone. - [Structure and landmarks](https://getwebsight.com/rules/themes/structure.html): Skip links, real lists, real headings and content that is not hidden by mistake. - [Tables](https://getwebsight.com/rules/themes/tables.html): Header cells that match data cells and captions that are real captions. - [Keyboard and focus](https://getwebsight.com/rules/themes/keyboard-and-focus.html): Reaching, using and seeing every control without a mouse. - [ARIA](https://getwebsight.com/rules/themes/aria.html): Roles, attributes and names that assistive technology can actually use. - [Media and motion](https://getwebsight.com/rules/themes/media-and-motion.html): Captions, autoplaying sound, blinking, scrolling and auto-refresh. - [Language](https://getwebsight.com/rules/themes/language.html): Telling screen readers which language to speak. - [Page title, frames and zoom](https://getwebsight.com/rules/themes/page-title-and-zoom.html): Titles, frame titles, pinch zoom, orientation and text spacing. - [WCAG 2.2 success criteria explained](https://getwebsight.com/wcag/): all 56 A and AA criteria, filterable by level and principle - [Which laws point at WCAG?](https://getwebsight.com/which-laws-point-at-wcag.html): UK, EU, US and Canada, informational, not legal advice ### Rule pages - [ARIA attributes must be allowed for the element's role (aria-allowed-attr)](https://getwebsight.com/rules/aria-allowed-attr.html) - [aria-braillelabel must have a matching text label (aria-braille-equivalent)](https://getwebsight.com/rules/aria-braille-equivalent.html) - [ARIA attributes must follow the conditions of the element's role (aria-conditional-attr)](https://getwebsight.com/rules/aria-conditional-attr.html) - [Deprecated ARIA roles must not be used (aria-deprecated-role)](https://getwebsight.com/rules/aria-deprecated-role.html) - [aria-label must not be used on div, span or p without a role (aria-prohibited-attr)](https://getwebsight.com/rules/aria-prohibited-attr.html) - [Required ARIA attributes must be provided for the role (aria-required-attr)](https://getwebsight.com/rules/aria-required-attr.html) - [ARIA roles that need particular children must contain them (aria-required-children)](https://getwebsight.com/rules/aria-required-children.html) - [ARIA roles that need a particular parent must sit inside it (aria-required-parent)](https://getwebsight.com/rules/aria-required-parent.html) - [aria-roledescription must only be used on elements with a role (aria-roledescription)](https://getwebsight.com/rules/aria-roledescription.html) (not run by Websight: deprecated in axe-core) - [ARIA roles must be valid (aria-roles)](https://getwebsight.com/rules/aria-roles.html) - [Tabs must have an accessible name (aria-tab-name)](https://getwebsight.com/rules/aria-tab-name.html) - [Tooltips must have an accessible name (aria-tooltip-name)](https://getwebsight.com/rules/aria-tooltip-name.html) - [ARIA attributes must have valid values (aria-valid-attr-value)](https://getwebsight.com/rules/aria-valid-attr-value.html) - [ARIA attributes must have valid names (aria-valid-attr)](https://getwebsight.com/rules/aria-valid-attr.html) - [ids used by ARIA and labels must be unique (duplicate-id-aria)](https://getwebsight.com/rules/duplicate-id-aria.html) - [Meters must have an accessible name (aria-meter-name)](https://getwebsight.com/rules/aria-meter-name.html) - [Progress bars must have an accessible name (aria-progressbar-name)](https://getwebsight.com/rules/aria-progressbar-name.html) - [Text must have enough contrast with its background (color-contrast)](https://getwebsight.com/rules/color-contrast.html) - [Links in body text must not rely on colour alone (link-in-text-block)](https://getwebsight.com/rules/link-in-text-block.html) - [Form fields must have labels (label)](https://getwebsight.com/rules/label.html) - [A form field should have one label, not several (form-field-multiple-labels)](https://getwebsight.com/rules/form-field-multiple-labels.html) - [Select menus must have an accessible name (select-name)](https://getwebsight.com/rules/select-name.html) - [Input buttons must have discernible text (input-button-name)](https://getwebsight.com/rules/input-button-name.html) - [The autocomplete attribute must use a valid value (autocomplete-valid)](https://getwebsight.com/rules/autocomplete-valid.html) - [ARIA input fields must have an accessible name (aria-input-field-name)](https://getwebsight.com/rules/aria-input-field-name.html) - [ARIA toggle fields must have an accessible name (aria-toggle-field-name)](https://getwebsight.com/rules/aria-toggle-field-name.html) - [Images must have alternative text (image-alt)](https://getwebsight.com/rules/image-alt.html) - [Image buttons must have alternative text (input-image-alt)](https://getwebsight.com/rules/input-image-alt.html) - [Elements with role="img" must have alternative text (role-img-alt)](https://getwebsight.com/rules/role-img-alt.html) - [SVG graphics with an image role must have alternative text (svg-img-alt)](https://getwebsight.com/rules/svg-img-alt.html) - [Embedded objects must have alternative text (object-alt)](https://getwebsight.com/rules/object-alt.html) - [Image map areas must have alternative text (area-alt)](https://getwebsight.com/rules/area-alt.html) - [Server-side image maps must not be used (server-side-image-map)](https://getwebsight.com/rules/server-side-image-map.html) - [Scrollable areas must be reachable with a keyboard (scrollable-region-focusable)](https://getwebsight.com/rules/scrollable-region-focusable.html) - [Frames with controls inside must not have tabindex=-1 (frame-focusable-content)](https://getwebsight.com/rules/frame-focusable-content.html) - [Hidden elements must not contain anything you can Tab to (aria-hidden-focus)](https://getwebsight.com/rules/aria-hidden-focus.html) - [Buttons and links must be big enough to press (target-size)](https://getwebsight.com/rules/target-size.html) - [The page must say what language it is in (html-has-lang)](https://getwebsight.com/rules/html-has-lang.html) - [The page language code must be valid (html-lang-valid)](https://getwebsight.com/rules/html-lang-valid.html) - [lang and xml:lang must name the same language (html-xml-lang-mismatch)](https://getwebsight.com/rules/html-xml-lang-mismatch.html) - [Language codes on page sections must be valid (valid-lang)](https://getwebsight.com/rules/valid-lang.html) - [Links must have text a screen reader can announce (link-name)](https://getwebsight.com/rules/link-name.html) - [Buttons must have a name that says what they do (button-name)](https://getwebsight.com/rules/button-name.html) - [Expandable sections need a summary with words in it (summary-name)](https://getwebsight.com/rules/summary-name.html) - [Do not put one control inside another (nested-interactive)](https://getwebsight.com/rules/nested-interactive.html) - [ARIA buttons, links and menu items need a name (aria-command-name)](https://getwebsight.com/rules/aria-command-name.html) - [The words on a control must be part of its accessible name (label-content-name-mismatch)](https://getwebsight.com/rules/label-content-name-mismatch.html) - [Audio needs captions or a transcript (audio-caption)](https://getwebsight.com/rules/audio-caption.html) (not run by Websight: deprecated in axe-core) - [Videos must have captions (video-caption)](https://getwebsight.com/rules/video-caption.html) - [Sound must not start playing on its own (no-autoplay-audio)](https://getwebsight.com/rules/no-autoplay-audio.html) - [Do not use the blink element (blink)](https://getwebsight.com/rules/blink.html) - [Do not use the marquee element (marquee)](https://getwebsight.com/rules/marquee.html) - [Pages must not refresh or redirect on a timer (meta-refresh)](https://getwebsight.com/rules/meta-refresh.html) - [Every page needs a title (document-title)](https://getwebsight.com/rules/document-title.html) - [Frames must have a title (frame-title)](https://getwebsight.com/rules/frame-title.html) - [Frames on the same page must have different titles (frame-title-unique)](https://getwebsight.com/rules/frame-title-unique.html) - [Do not block pinch zoom on phones (meta-viewport)](https://getwebsight.com/rules/meta-viewport.html) - [Do not lock the page to portrait or landscape (css-orientation-lock)](https://getwebsight.com/rules/css-orientation-lock.html) (not run by Websight: experimental in axe-core) - [Text spacing must not be locked with !important (avoid-inline-spacing)](https://getwebsight.com/rules/avoid-inline-spacing.html) - [Give people a way to skip past repeated navigation (bypass)](https://getwebsight.com/rules/bypass.html) - [Lists must only contain list items (list)](https://getwebsight.com/rules/list.html) - [List items must sit inside a list (listitem)](https://getwebsight.com/rules/listitem.html) - [Definition lists must be built from matching terms and descriptions (definition-list)](https://getwebsight.com/rules/definition-list.html) - [Terms and descriptions must sit inside a definition list (dlitem)](https://getwebsight.com/rules/dlitem.html) - [Use real headings, not bold paragraphs (p-as-heading)](https://getwebsight.com/rules/p-as-heading.html) (not run by Websight: experimental in axe-core) - [Never hide the whole page with aria-hidden (aria-hidden-body)](https://getwebsight.com/rules/aria-hidden-body.html) - [Every data cell in a table needs a header (td-has-header)](https://getwebsight.com/rules/td-has-header.html) (not run by Websight: experimental in axe-core) - [The headers attribute must point at header cells in the same table (td-headers-attr)](https://getwebsight.com/rules/td-headers-attr.html) - [Every table header must describe some data (th-has-data-cells)](https://getwebsight.com/rules/th-has-data-cells.html) - [Table captions must use the caption element (table-fake-caption)](https://getwebsight.com/rules/table-fake-caption.html) (not run by Websight: experimental in axe-core) ### WCAG 2.2 criterion pages - [1.1.1 Non-text Content, level A](https://getwebsight.com/wcag/1-1-1-non-text-content.html) - [1.2.1 Audio-only and Video-only (Prerecorded), level A](https://getwebsight.com/wcag/1-2-1-audio-only-and-video-only-prerecorded.html) - [1.2.2 Captions (Prerecorded), level A](https://getwebsight.com/wcag/1-2-2-captions-prerecorded.html) - [1.2.3 Audio Description or Media Alternative (Prerecorded), level A](https://getwebsight.com/wcag/1-2-3-audio-description-or-media-alternative-prerecorded.html) - [1.2.4 Captions (Live), level AA](https://getwebsight.com/wcag/1-2-4-captions-live.html) - [1.2.5 Audio Description (Prerecorded), level AA](https://getwebsight.com/wcag/1-2-5-audio-description-prerecorded.html) - [1.3.1 Info and Relationships, level A](https://getwebsight.com/wcag/1-3-1-info-and-relationships.html) - [1.3.2 Meaningful Sequence, level A](https://getwebsight.com/wcag/1-3-2-meaningful-sequence.html) - [1.3.3 Sensory Characteristics, level A](https://getwebsight.com/wcag/1-3-3-sensory-characteristics.html) - [1.3.4 Orientation, level AA](https://getwebsight.com/wcag/1-3-4-orientation.html) - [1.3.5 Identify Input Purpose, level AA](https://getwebsight.com/wcag/1-3-5-identify-input-purpose.html) - [1.4.1 Use of Color, level A](https://getwebsight.com/wcag/1-4-1-use-of-color.html) - [1.4.2 Audio Control, level A](https://getwebsight.com/wcag/1-4-2-audio-control.html) - [1.4.3 Contrast (Minimum), level AA](https://getwebsight.com/wcag/1-4-3-contrast-minimum.html) - [1.4.4 Resize Text, level AA](https://getwebsight.com/wcag/1-4-4-resize-text.html) - [1.4.5 Images of Text, level AA](https://getwebsight.com/wcag/1-4-5-images-of-text.html) - [1.4.10 Reflow, level AA](https://getwebsight.com/wcag/1-4-10-reflow.html) - [1.4.11 Non-text Contrast, level AA](https://getwebsight.com/wcag/1-4-11-non-text-contrast.html) - [1.4.12 Text Spacing, level AA](https://getwebsight.com/wcag/1-4-12-text-spacing.html) - [1.4.13 Content on Hover or Focus, level AA](https://getwebsight.com/wcag/1-4-13-content-on-hover-or-focus.html) - [2.1.1 Keyboard, level A](https://getwebsight.com/wcag/2-1-1-keyboard.html) - [2.1.2 No Keyboard Trap, level A](https://getwebsight.com/wcag/2-1-2-no-keyboard-trap.html) - [2.1.4 Character Key Shortcuts, level A](https://getwebsight.com/wcag/2-1-4-character-key-shortcuts.html) - [2.2.1 Timing Adjustable, level A](https://getwebsight.com/wcag/2-2-1-timing-adjustable.html) - [2.2.2 Pause, Stop, Hide, level A](https://getwebsight.com/wcag/2-2-2-pause-stop-hide.html) - [2.3.1 Three Flashes or Below Threshold, level A](https://getwebsight.com/wcag/2-3-1-three-flashes-or-below-threshold.html) - [2.4.1 Bypass Blocks, level A](https://getwebsight.com/wcag/2-4-1-bypass-blocks.html) - [2.4.2 Page Titled, level A](https://getwebsight.com/wcag/2-4-2-page-titled.html) - [2.4.3 Focus Order, level A](https://getwebsight.com/wcag/2-4-3-focus-order.html) - [2.4.4 Link Purpose (In Context), level A](https://getwebsight.com/wcag/2-4-4-link-purpose-in-context.html) - [2.4.5 Multiple Ways, level AA](https://getwebsight.com/wcag/2-4-5-multiple-ways.html) - [2.4.6 Headings and Labels, level AA](https://getwebsight.com/wcag/2-4-6-headings-and-labels.html) - [2.4.7 Focus Visible, level AA](https://getwebsight.com/wcag/2-4-7-focus-visible.html) - [2.4.11 Focus Not Obscured (Minimum), level AA](https://getwebsight.com/wcag/2-4-11-focus-not-obscured-minimum.html) - [2.5.1 Pointer Gestures, level A](https://getwebsight.com/wcag/2-5-1-pointer-gestures.html) - [2.5.2 Pointer Cancellation, level A](https://getwebsight.com/wcag/2-5-2-pointer-cancellation.html) - [2.5.3 Label in Name, level A](https://getwebsight.com/wcag/2-5-3-label-in-name.html) - [2.5.4 Motion Actuation, level A](https://getwebsight.com/wcag/2-5-4-motion-actuation.html) - [2.5.7 Dragging Movements, level AA](https://getwebsight.com/wcag/2-5-7-dragging-movements.html) - [2.5.8 Target Size (Minimum), level AA](https://getwebsight.com/wcag/2-5-8-target-size-minimum.html) - [3.1.1 Language of Page, level A](https://getwebsight.com/wcag/3-1-1-language-of-page.html) - [3.1.2 Language of Parts, level AA](https://getwebsight.com/wcag/3-1-2-language-of-parts.html) - [3.2.1 On Focus, level A](https://getwebsight.com/wcag/3-2-1-on-focus.html) - [3.2.2 On Input, level A](https://getwebsight.com/wcag/3-2-2-on-input.html) - [3.2.3 Consistent Navigation, level AA](https://getwebsight.com/wcag/3-2-3-consistent-navigation.html) - [3.2.4 Consistent Identification, level AA](https://getwebsight.com/wcag/3-2-4-consistent-identification.html) - [3.2.6 Consistent Help, level A](https://getwebsight.com/wcag/3-2-6-consistent-help.html) - [3.3.1 Error Identification, level A](https://getwebsight.com/wcag/3-3-1-error-identification.html) - [3.3.2 Labels or Instructions, level A](https://getwebsight.com/wcag/3-3-2-labels-or-instructions.html) - [3.3.3 Error Suggestion, level AA](https://getwebsight.com/wcag/3-3-3-error-suggestion.html) - [3.3.4 Error Prevention (Legal, Financial, Data), level AA](https://getwebsight.com/wcag/3-3-4-error-prevention-legal-financial-data.html) - [3.3.7 Redundant Entry, level A](https://getwebsight.com/wcag/3-3-7-redundant-entry.html) - [3.3.8 Accessible Authentication (Minimum), level AA](https://getwebsight.com/wcag/3-3-8-accessible-authentication-minimum.html) - [4.1.1 Parsing, level A](https://getwebsight.com/wcag/4-1-1-parsing.html) - [4.1.2 Name, Role, Value, level A](https://getwebsight.com/wcag/4-1-2-name-role-value.html) - [4.1.3 Status Messages, level AA](https://getwebsight.com/wcag/4-1-3-status-messages.html)