Skip to content

Accessibility Audit 1.1.1: fixes from the first dry submit on a real site - #2

Merged
HosseinKarami merged 1 commit into
mainfrom
fix/1.1.1
Nov 1, 2026
Merged

HosseinKarami merged 1 commit into
mainfrom
fix/1.1.1

Conversation

@HosseinKarami

@HosseinKarami HosseinKarami commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Summary

The first full audit with 1.1.0 on a client site, a large WordPress news site (2026-10-28, 310 pages), showed four defects. This version fixes them.

The fixes

  1. The same form was tested on many pages. The engine identified a form by the address it sends to. A Gravity Forms form sends to its own page (its action is the address of the page), so that address was different on each page. The footer subscribe form had 47 dry submits.
    • A form that sends to its own page now has the same identity on each page.
    • The names of the hidden fields now tell apart two forms with the same visible fields.
  2. Buttons that did not respond (11 pages on that site). There were two causes, and the engine now skips both kinds of form, because they show only after an action or a delay (FORMS.md section 3.6):
    • a form in a fixed bar below the screen, for example a closed slide-up bar.
    • a form in a popup that opens 10 seconds after the load. The engine found it on the main page after the popup opened, but the fresh page of the dry submit did not show it yet. The coverage names such a form, and its page can still count as tested.
  3. The engine version was 0.1.0. The audit now records the package version. The first audit after an update is a baseline audit: an issue that disappears in it is "resolved, rule changed", not "fixed".
  4. A criterion tested only in processes showed 0 tested units. For example, 3.3.1 on the staging of that site. The coverage now shows the process steps apart (coverage.process_units), and the report names them.

Proof

  • tests/dry-submit.mjs has new pages for each case:

    • a form that sends to its own page, on two pages
    • a second form with other hidden fields
    • a form in a closed fixed bar
    • a form in a popup that opens after 3 seconds

    Against the 1.1.0 code, the checks of the first three cases fail, with the same message as on that site. The popup case gave the same message in a check of that site before its fix. With the fixes, all checks pass.

  • tests/summary.mjs (new, in npm test) checks the engine version and the process coverage.

  • npm test passes: 59 checks, plus the 4 seeded faults it runs.

  • The full seeded detection: 74 of 74 found. Its report is the same as for 1.1.0, apart from the date.

  • A short audit of four pages of that site, written to a scratch folder:

    • no button timeouts
    • the subscribe form tested once
    • the popup form skipped and named
    • engine version 1.1.1, marked as a baseline audit

Not in this version

  • The label "no content found" for tests that can miss cases, for example 2.4.1. That is a separate change.
  • Item 5 of the status report (4.1.3 after a dry submit) was not a defect: the sample pages already count 4.1.3 as tested through the button tests.

Other changes

  • Version 1.1.1 in the package, the plugin, and the lock file.
  • CHANGELOG.md, FORMS.md, README.md, and formats/summary.schema.json are updated.

…site

The first full audit with 1.1.0 on CRE Daily (2026-10-28) showed four
defects. This version fixes them.

- src/own/dry-submit.ts: a form that sends to its own page (Gravity Forms)
  is the same form on each page, and the names of the hidden fields tell
  two forms with the same visible fields apart. Before, the footer form
  had 47 dry submits.
- src/own/dry-submit.ts, src/audit.ts: a form in a fixed bar outside the
  screen, or a form that a new render does not show yet (a popup that
  opens after 10 seconds), is skipped. Before, its button timed out and
  11 pages were "not tested". The coverage names a skipped popup form.
- src/own/page.ts: the engine version is the package version, not 0.1.0.
  The first audit after an update is a baseline audit.
- src/results.ts, src/report.ts: a criterion that the processes test shows
  the process steps in its coverage (coverage.process_units).
- tests/dry-submit.mjs: pages for each case. tests/summary.mjs: the engine
  version and the process coverage. Both in npm test.
@HosseinKarami
HosseinKarami merged commit 6f90e06 into main Nov 1, 2026
1 check passed
@HosseinKarami
HosseinKarami deleted the fix/1.1.1 branch November 1, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant