@a11ign/screenreader-fleet

中文文档
0.13.3发布于 2026/10/25AGPL-3.0-or-laterTypeScriptES Module构建来源已验证近 30 天下载 5934

东道方的生命周期,健康和Windows NVDA的车队捕获工人的能力:租赁一号,判断是否有辱人格,并知道东道方能负担多少.

中文使用文档
文档目录7 节
  1. 一个租借,而不是你拥有的生命周期
  2. 能力是衡量的,从未假定过
  3. 保健:观察 recoveries ,而不是失败
  4. 装有包裹的补给脚本
  5. 在这里工作
  6. 未到之处:27次测试
  7. 释放

@a11ign/screenreader-fleet

Windows NVDA 捕捉工人车队的东道方生命周期、健康和能力。 运行在机器上 驱动器 工人——没有NVDA,没有向导,没有Windows.

npm install @a11ign/screenreader-fleet
npx a11ign-doctor          # can I run right now? every check names its own fix
import { leaseWorker } from "@a11ign/screenreader-fleet";

const lease = await leaseWorker({ after: "stop" });
try {
  // ... capture against lease.url
} finally {
  await lease.release();   // puts the VM back the way it was found
}

一个租借,而不是你拥有的生命周期

leaseWorker 确定优先抓捕对象:您指定的明确工作者,然后 inventory.yml光金属船队,如果一个被宣布,然后一个 当地UTM VM(已贬值——"UTM是 被腐烂,那是测试的东西,"仓库所有者,2026-09-05,然后是历史 http://localhost:8765 默认。 到达 UTM 分支打印一个警告命名 fleet:* 作为 替换;并非完全拒绝,因为有些机器仍然只有UTM客人可以联系,以及 删除管理它的~2,460行是一个单独的决定,而不是警告它. 只有越战案件 拥有一个生命周期来管理——一个光金属盒总是在——所以 release() 是一个不对别人开放 来源. 它开始什么是缺失和 发现时放回VM: 已经运行的是 左跑,一个被停止的再次停止。 长跑不能停止 另一跑是 使用 .

停止的工人VM是正确的休息状态. all stopped 是一个准备状态,而不是一个错误—— a11ign-doctor 说得很清楚,因为"去开工"是错误的本能和花费时间.

当地的UTM VM并不是这个项目的本体是如何被捕获的. 默认为 独身贡献者没有光金属机队, 继续工作正因为它仍然是正确的路径 这起案子... 这起雷波的人身案... 是被十名光金属工人抓获的 inventory.yml,哪个 leaseWorker 先检查一下 如果你正在单独消耗这个包 自有 Windows 框, 下方的 VM 生命周期仍然适用于您 .

能力是衡量的,从未假定过

import { availableHostMemoryMb, workersHostCanRun } from "@a11ign/screenreader-fleet/capacity";

工人的VM费用 ~8 个GB,而不是它配置的 4 GB——QEMU 在客机RAM的上方 那个Windows的脏东西 再也不会回来 3个不适合36GBMac, 过度承诺不只是 慢跑:同页取出44.5 s 有3个客人,27.4 s 有1个客人, 饥饿的客人生产 "NVDA正在运行但不能说话"失败和 /health 断电 从外面读作: 工人们 有辱人格,这就是它是如何被误诊一天.

遵循了两条规则, 都学会了艰难的方法:

  • 从不 os.freemem()。 。 。 . 它在一个主机上报告了402 MB,其中~12 GB要给出,因为macOS计数压缩 和使用的不活动页。 读取来自 vm_stat。 。 。 .
  • vm_stat 被它必须检测到的状况扭曲了 ——互换出场嘉宾的页面计为: 可用,所以估计数 上升数 当主机生病时,它发布13.7GB的免费广告,而两名客人是 饿死了 因此,上限是这一估计数的下限,上限来自实际记录和档案管理,没有 反馈回路可以移动.

保健:观察 recoveries,而不是失败

import { assessWorker } from "@a11ign/screenreader-fleet/health";

这船队制造的工人最糟糕的过失 零失败一名嘉宾的NVDA在四分之四失声 捕捉,工人自己的再试 吸收了每一个, 所以每个捕捉成功 和驱逐规则——三 连续 失败 永远不能开火。 唯一的症状是每捕获一个健康的同龄人122.9分 第40.6节.

vitals.recoveries 计算一个工人的过错 是数字上升的同时,一切仍然 似乎工作着.

装有包裹的补给脚本

import { fleetScriptPaths } from "@a11ign/screenreader-fleet";
fleetScriptPaths().workerCtl;   // absolute path to worker-ctl.sh

它们是外壳,所以是消费者产出它们,它们由模块而不是cwd解决——a cwd-相对路径在cwd为回波根时是完全正确的. 搞错了不是微妙的:在这期间 提取 doctor 在一个有3个注册VMs的主机上报告"这里没有本地VM工具".

macOS + UTM 软件 vM生命周期假设. utmctl 需要运行 UTM 应用程序, 或者一个完全健康的 VM 报告状态为: unknown;和 UTM 无法使用模拟的 NVMe 设备中止来宾, 因此停止/ 启动为 唯一真正的生命周期——冷靴子准备是15-45 s,这很好.

未导出 : host-metrics, (中文(简体) ), worker-stats, (中文(简体) ), fleet-consistency它们都是测量内部的形状 每当新事物被测量时 都会改变.

在这里工作

此寄存器是软件包 : package.json, (中文(简体) ), src/ 而这个README坐落在根上,README是npm的页面. 它从这里搬过来 a11ign/a11ign 它的历史。 这取决于 @a11ign/screenreader-worker 财务报告和审定财务报表 @a11ign/judge 姓名,来自登记册。 。 。 .

舰队驱动没有认证的工人. 任何能到达工人端口的人都可以驱动浏览器和屏幕 机器上的读取器(SECURITY.md 内 a11ign/a11ign 说什么别人必须先知道。 只在您控制的网络上运行 .

pnpm install --frozen-lockfile
pnpm test        # what the `gate` check runs on every pull request and merge-queue entry, with lint, typecheck and layout-check

main 通过合并队列只取拉动请求,每个请求都有一个批准审查. pnpm exec layout-check 是寄存器显示 检查从 @a11ign/toolchain: 它失败了一个软件包的工作空间, 一个不因其软件包命名的目录, 一个第二个 README 和一个剩余 lerna.json。 。 。 .

未到之处:27次测试

软件包的测试目录是为单列波所写的,其53个测试文件中有27个读取了不在本寄存器内的东西: packages/control游戏本和目录, packages/lab捕捉客户,私人 guards 软件包,或者根的 scripts/运行在这里,他们在无法找到的文件上失败,所以他们是 没有 被带入此仓库 a11ign/a11ign在他们读到的书之外, 直到它的第3504行转移他们。 他们的名字是 COUPLED 列表中 packages/lab/src/packaging/screenreader-fleet-extraction.test.ts 在这里。 其他26人跑到这儿来 gate 运行, 使用 scripts/package-boundary.test.ts 将软件包保存到自己的目录.

释放

这个寄存器是自行发布,而不是与 a11ign/a11ign。一个应该达到 npm 的更改包含一个更改et (单位:千美元)pnpm exec changeset),以及 合并到 main 是释放数字 : .github/workflows/release.yml 打给那个 可在 a11ign/toolchain,由哪个版本合并到一个脱开的承诺、发布、标记和 释放它。 没有版本拉动请求,也没有写给 main,因此,这是 package.json 版本和 CHANGELOG.md 后一个标签后退( n).changeset/README.md) (中文(简体) ). 出版时使用 npm 信任的出版 原产地和没有储存的代币。 第一份版本0.1.0在本工作流程存在之前出版; 没有 git 标签名称, 所以第一个 浮出水面的释放基础 main0.1.0岁.

版本与发布记录

@a11ign/screenreader-fleet 共发布 28 个版本,首次发布于 2026/10/04;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.13.3latest2026/10/2513 天前
0.13.22026/10/2414 天前
0.13.12026/10/1523 天前
0.13.02026/10/1523 天前
0.12.02026/10/1325 天前
0.11.02026/10/1325 天前

其他发布通道:reserved → 0.0.0-reserved.0。

关于 @a11ign/screenreader-fleet 的常见问题

@a11ign/screenreader-fleet 是什么?

东道方的生命周期,健康和Windows NVDA的车队捕获工人的能力:租赁一号,判断是否有辱人格,并知道东道方能负担多少.

如何安装 @a11ign/screenreader-fleet?

在项目目录运行 npm install @a11ign/screenreader-fleet,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 a11ign-doctor、a11ign-guest-run、a11ign-worker-ctl、a11ign-worker-code、a11ign-worker-compare、a11ign-normalise-fleet,可以用 npx a11ign-doctor 直接运行。

@a11ign/screenreader-fleet 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@a11ign/screenreader-fleet 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@a11ign/screenreader-fleet 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.15.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@a11ign/screenreader-fleet 可以商用吗?

@a11ign/screenreader-fleet 使用 AGPL-3.0-or-later 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@a11ign/screenreader-fleet 的下载量有多少?

根据 npm 官方下载统计,@a11ign/screenreader-fleet 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,934 次,日均约 198 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@a11ign/screenreader-fleet 还在维护吗?

最新版本 0.13.3 发布于 2026/10/25(13 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2026/10/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。