Repository navigation
Releases: a11ign/screenreader-worker
Releases · a11ign/screenreader-worker
Release list
v0.13.13
Patch Changes
- 095d6eb: A capture whose screen reader spoke a window other than the page is now a retryable fault, not a success. The window's spoken title is compared with the page's own title; when it does not contain it, and the transcript is at most two identical phrases, the capture fails. A
cmd.execonsole read as two identical phrases on Windows 11 build 26200, and the taskbar read as one phrase on 22631, both came back as["blank","blank"]or["Taskbar"]and were returned as a capture. The worker now cold-starts the screen reader and captures again with the browser in front. When the page's title cannot be read, only shell windows are caught.
v0.13.12
Patch Changes
- 7c39099: A capture no longer takes Chrome DevTools
Page.bringToFrontas proof that the browser is in front. On Windows 11 build 26200 that request resolved while the foreground stayed on the launcher'scmd.exe, NVDA started there, and the capture read["blank","blank"]. The foreground handle read back from the operating system now decides; a refused request is retried with a synthetic Alt press and then an attached input queue, and the winning method is reported. Where the operating-system check cannot run at all, the earlier behaviour stands.
v0.13.11
Patch Changes
- 56afaea: The per-direction cap on a quick-nav sweep is lowered from 250 steps to 150. On a page that runs to the cap, a sweep now stops after 150 steps where it used to stop after 250, so a form whose fields lie past step 150 is read less and is recorded as incomplete. Ordinary pages are not affected. The cost of the lower cap as evidence is not yet measured.
v0.13.10
Patch Changes
- 3b6b476: The
sweepdiagnostic mark now splits each direction's time into four buckets:tripItemMsis theonItemwork between round trips, which the three trip buckets never covered, so the four add up to the direction's time. The trip buckets are measured withperformance.now(), so a sub-millisecond round is no longer read as zero. The evidence a capture records is unchanged; the mark only gains a field and its numbers are fractional milliseconds.
v0.13.9
Patch Changes
- 4d01f94: The
sweepdiagnostic mark now splits each direction's round-trip time intotripPerformMs(the NVDA keystroke),tripLogMs(the speech-log reads) andtripQuietMs(the silence waits), underprevSplitandnextSplit. The evidence a capture records is unchanged; the mark only gains fields.
v0.13.8
Patch Changes
- 91a69ac: The per-field activation under probe-forms takes a quarter of the time left when its sweep begins, not a half (a11ign/agent-org#1643). On a runner's
survey.htmlthe activation spent 98.2 s of the 187.6 s that half allowed; a quarter binds there. The recapture reads the time and how many fields went unactivated.
v0.13.7
Patch Changes
- fc488ce: Each branch the screen loop takes now records the alerts and controls the screen showed.
alertslists everyalertcontrol as its role and accessible name, and is[]when the screen had none, so "no alert" and "not recorded" are different readings.controlslists every control the same way, so a field error that is not analertrole is visible beside the alert. A branch that stops the loop carries both too. Only roles and names are recorded: a field's value and a control's class name never reach a branch.
v0.13.6
Patch Changes
- d7437b5: The probe-forms path never presses a control that names an identity provider.
Continue with Google,Sign in with Apple, and the Microsoft, GitHub and Facebook forms were classified as a submit byprobeKindForand pressed whenever probe-forms was on, which takes the page to the provider's own login. Now such a control is no probe at all, as a submit, a task or a disclosure, and the plainContinueorSign inbeside it is still the submit. The provider list is one constant,PROVIDER_NAMEincapture-pure.ts, that the screen loop and the probe both read, so a provider added to one cannot be missing from the other. This is the probe path's counterpart to the screen loop's fix (a11ign#5494).
v0.13.5
Patch Changes
- 8b1f3a3: The
left-originsentence no longer calls an identity-provider redirect SSO "which v1 does not do". It now says that a redirect to an identity provider the flow does not declare ends the run, and names theidp-origins:declaration that allows it; SSO beyond that is still not supported. The CLI prints the same sentence, and the two are held to one literal by a parity test.
v0.13.4
Patch Changes
- efe126d: The worker's server now starts when the launcher reaches it through a symlink or a directory junction. Before, it compared the real path of its own module with
process.argv[1]as typed, found them unequal under a linkednode_modulespath, took itself for a library, and exited 0 with no output: worker-5 went down that way after a provision (a11ign#5155). Both sides are resolved to real paths before the comparison, and a path that does not resolve is not an entry point, so importing the module still stays silent. A run by a real path is unchanged.