MajorHigh confidence

Coupon field has no label

The coupon input that appears after clicking Add coupon has no label, so assistive technology can't say what it is for.

Rule, selector and screenshot
Example finding Dashboard GitHub check
BlockerHigh confidence

Delete button can't be reached with the keyboard

Tabbing through the page skips the Delete control, so keyboard users can't remove an item.

Step, focused element and screenshot
Example finding Dashboard GitHub check
01 / 04

Automated WCAG 2.2 AA

Runs accessibility rules on every state your flows reach, not just the page on load.

Type
Deterministic
Status
[TBD: Live / Beta / Coming soon]
Default
[TBD: On / Off]
Est. cost
[TBD: X credits per run]

What it catches

  • Missing labels and alternative text
  • Colour contrast failures
  • Invalid ARIA
  • Missing landmarks and heading problems
  • Issues in dialogs, menus and states that only appear after interaction

Example finding

A form with an unlabelled field boxed, and the axe rule that flagged it.

Hydrofoil · Automated WCAG 2.2 AA
Criticalaxe-core rule
labelForm elements must have labels
WCAG 1.3.1WCAG 4.1.2
Element

form > input#coupon

State: after clicking "Add coupon"

  1. 1
    Boxed elementThe field that failed, on a screenshot.
  2. 2
    Rule nameThe axe-core rule and the WCAG criteria it maps to.
  3. 3
    SelectorWhere to find it in your code, and the state it appeared in.

How it works

The axe-core rules run on every visited state, including after clicks and form submissions.

  1. 01

    Reach each state

    Follow your flows, including after clicks.

  2. 02

    Run axe-core

    Apply the rules to every visited state.

  3. 03

    Capture evidence

    Selector and a screenshot, element boxed.

Output

Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.

Severity
BlockerMajorMinorNit
Confidence
HighMediumLow · Needs reviewDoesn't fail the check
Where it appears
Hydrofoil dashboard GitHub check

Evidence

What each finding includes.

  • The rule, the affected element's selector and a screenshot with the element boxed.

Known limits

  • Automated rules find only some accessibility problems. This does not certify WCAG compliance or replace a manual audit.
  • [TBD: confirm wording]

Configuration

Turn this review on or off for each repository in repository settings.[TBD: add any check-specific options.]

02 / 04

Keyboard & focus

Tabs through your flows to check they work without a mouse.

Type
Deterministic + AI
Status
[TBD: Live / Beta / Coming soon]
Default
[TBD: On / Off]
Est. cost
[TBD: X credits per run]

What it catches

  • Controls that can't be reached by keyboard
  • Illogical tab order
  • Missing or invisible focus indicators
  • Dialogs that don't trap focus or return it afterwards
  • Dialogs that don't close with Esc
  • Missing skip links

Example finding

Tab-order numbers over a page. One control never gets a number.

Hydrofoil · Keyboard & focus
Tab order, as recorded by the agentNot reachable by keyboard
  1. 1
    Tab orderThe order focus moved in, as recorded.
  2. 2
    Missing numberA control focus never reached.

How it works

The agent navigates each flow using only the keyboard, recording focus order and visibility.

  1. 01

    Use only the keyboard

    Tab, Shift+Tab, Enter and Esc.

  2. 02

    Record focus

    Order, and whether it's visible.

  3. 03

    Review the result

    Judge whether the order makes sense.

Output

Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.

Severity
BlockerMajorMinorNit
Confidence
HighMediumLow · Needs reviewDoesn't fail the check
Where it appears
Hydrofoil dashboard GitHub check

Evidence

What each finding includes.

  • The step, the focused element and a screenshot.

Known limits

  • Tests keyboard use, not screen readers.
  • Highly custom widgets may need review. [TBD: confirm]

Configuration

Turn this review on or off for each repository in repository settings.[TBD: add any check-specific options.]

03 / 04

Screen-reader semantics

Reviews what assistive technology would be told about your page.

Type
AI
Status
[TBD: Live / Beta / Coming soon]
Default
[TBD: On / Off]
Est. cost
[TBD: X credits per run]

What it catches

  • Controls with missing or unclear names and roles
  • Heading order problems and missing landmarks
  • Form labels and errors not linked to their fields
  • Toasts and updates that aren't announced
  • Unhelpful alternative text

Example finding

The accessibility tree beside the page. One button reads only "button".

Hydrofoil · Screen-reader semantics
Accessibility tree
  • main
  • heading "Cart" level 1
  • textbox "Email"
  • button← no name
  • button "Place order"
  1. 1
    Accessibility treeWhat assistive technology is told.
  2. 2
    No nameA button with a role but no name.
  3. 3
    The elementWhere it is on the page.

How it works

Hydrofoil reads the page's accessibility tree and reviews names, roles, structure and announcements.

  1. 01

    Read the tree

    The page's accessibility tree.

  2. 02

    Check names and roles

    Names, roles and structure.

  3. 03

    Check announcements

    Toasts and updates.

Output

Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.

Severity
BlockerMajorMinorNit
Confidence
HighMediumLow · Needs reviewDoesn't fail the check
Where it appears
Hydrofoil dashboard GitHub check

Evidence

What each finding includes.

  • The accessibility-tree excerpt and a screenshot of the element.

Known limits

  • Reviews the accessibility tree rather than running a real screen reader. [TBD: confirm]

Configuration

Turn this review on or off for each repository in repository settings.[TBD: add any check-specific options.]

04 / 04

Visual accessibility

Contrast, zoom, motion and colour-only meaning.

Type
Deterministic + AI
Status
[TBD: Live / Beta / Coming soon]
Default
[TBD: On / Off]
Est. cost
[TBD: X credits per run]

What it catches

  • Low contrast, including text over images
  • Content that doesn't reflow at 320px or 200% zoom
  • Animation that ignores reduced-motion settings
  • Information conveyed by colour alone

Example finding

A button with its measured contrast ratio, and an error state that relies only on red.

Hydrofoil · Visual accessibility
Contrast
2.6 : 1 measured4.5 : 1 required
Colour alone
Only the border says this field is wrong. No icon, no message.
  1. 1
    Measured contrastRatio found, against the ratio required.
  2. 2
    Colour aloneAn error shown by colour and nothing else.

How it works

Contrast and reflow are measured; AI reviews colour-only meaning and judges the harder contrast cases.

  1. 01

    Measure contrast

    Text and controls against their backgrounds.

  2. 02

    Test reflow

    At 320px and 200% zoom.

  3. 03

    Review the rest

    Colour-only meaning and hard cases.

Output

Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.

Severity
BlockerMajorMinorNit
Confidence
HighMediumLow · Needs reviewDoesn't fail the check
Where it appears
Hydrofoil dashboard GitHub check

Evidence

What each finding includes.

  • Screenshot with the area boxed and the measured values.

Known limits

  • Contrast over images and gradients is estimated.
  • Colour-only judgement is AI, so confidence is shown.

Configuration

Turn this review on or off for each repository in repository settings.[TBD: add any check-specific options.]

Related reviews

See it on your next pull request

Hydrofoil opens each preview in a real browser and posts what it finds to GitHub.