Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
38c146c
feat: add permissioned accessible conversation view
mattheliu Aug 29, 2026
27a8007
ci: install Playwright from the DSH web workspace
mattheliu Aug 29, 2026
769e85d
test: add versioned non-AT browser gates
mattheliu Aug 29, 2026
c730386
feat: add hermetic assistive-technology lab
mattheliu Aug 29, 2026
3ae4b4b
feat: add alpha2 core assistive-technology lab
mattheliu Aug 31, 2026
35b5b67
feat: add live assistive-technology scenarios
mattheliu Aug 31, 2026
d9a5569
feat: add CLI accessibility conformance lab
mattheliu Aug 31, 2026
b02a7fc
docs: define accessible authoring architecture
mattheliu Aug 31, 2026
ae43bf1
docs: record assembled accessibility authoring chain
mattheliu Aug 31, 2026
dafa3eb
docs: define literal-loopback audit boundary
mattheliu Aug 31, 2026
77dff32
docs: record installable accessibility composition
mattheliu Aug 31, 2026
52efa8e
feat: add versioned authoring agent lab
mattheliu Aug 31, 2026
4bb7d5a
feat: add interactive authoring AT lab
mattheliu Aug 31, 2026
6bdd861
feat: add validated human accessibility evidence ledger
mattheliu Aug 31, 2026
50d6791
feat: govern human evidence with a task catalog
mattheliu Aug 31, 2026
372f42a
feat: aggregate accessibility evidence coverage
mattheliu Aug 31, 2026
6385f75
fix: isolate Chrome for core AT lab
mattheliu Aug 31, 2026
6b6586d
fix: isolate browsers across AT labs
mattheliu Aug 31, 2026
bae90c0
feat: add disabled-developer evidence intake
mattheliu Aug 31, 2026
86248ea
feat: scaffold catalog-owned evidence drafts
mattheliu Aug 31, 2026
41420bf
docs: record caller-owned page composition
mattheliu Aug 31, 2026
a1a3ec8
feat: add accessible diagnostic feedback loop
mattheliu Aug 31, 2026
1b56e69
feat: connect diagnostics to human evidence
mattheliu Aug 31, 2026
2512c61
feat: bind human labs to exact source commits
mattheliu Aug 31, 2026
4d46c28
feat: make authoring package readiness explicit
mattheliu Aug 31, 2026
a1929dd
test: prove isolated authoring package installs
mattheliu Aug 31, 2026
b30be30
fix: use pnpm workspace tarball overrides
mattheliu Aug 31, 2026
76b552f
fix: import every packed authoring package
mattheliu Aug 31, 2026
235084b
test: bind authoring model evidence to exact sources
mattheliu Aug 31, 2026
e68584f
fix: install authoring lab from exact tarballs
mattheliu Aug 31, 2026
18aab35
test: mount authoring AT lab from exact tarballs
mattheliu Aug 31, 2026
7cbdb93
docs: require untrusted authoring data framing
mattheliu Aug 31, 2026
df79894
test: verify persisted authoring data boundary
mattheliu Aug 31, 2026
d74bc10
docs: record public alpha package preparation
mattheliu Aug 31, 2026
e7abfea
build: pin alpha publication identity
mattheliu Aug 31, 2026
6a2d4d8
build: add alpha publication preflight
mattheliu Aug 31, 2026
15d1a93
test: tolerate npm pack policy notices
mattheliu Aug 31, 2026
25820ee
docs(a11y): archive core browser evidence
mattheliu Aug 31, 2026
6aed716
feat(at): harden cross-platform human validation
mattheliu Aug 31, 2026
9b806f3
docs(at): prepare exact primary validation campaign
mattheliu Aug 31, 2026
f74b4a5
docs(at): prepare tested public outreach handoff
mattheliu Aug 31, 2026
27993b1
docs(at): correct public intake readiness
mattheliu Aug 31, 2026
242517d
feat(at): verify public campaign readiness anonymously
mattheliu Aug 31, 2026
b7aec02
docs(a11y): bind browser evidence to campaign revision
mattheliu Aug 31, 2026
abc773b
feat(authoring): require unresolved human review plan
mattheliu Aug 31, 2026
67e93ac
test(authoring): archive exact product-loop evidence
mattheliu Aug 31, 2026
0708025
feat(at): preflight exact campaign publication
mattheliu Aug 31, 2026
89ea16d
fix(at): accept pnpm preflight separator
mattheliu Aug 31, 2026
78eb824
test(evidence): resolve scaffold CLI path on Windows
mattheliu Aug 31, 2026
8d8a87d
fix(ci): isolate assembled checkout from evidence source
mattheliu Aug 31, 2026
937831e
docs(at): open primary human validation campaign
mattheliu Aug 31, 2026
cdd1ebc
merge: align campaign branch after foundation squash
mattheliu Aug 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions PRIMARY-AT-CAMPAIGN.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/omdsh-dev/dsh-accessibility/main/PRIMARY-AT-CAMPAIGN.schema.json",
"protocol": "dsh-a11y-primary-at-campaign/0.1.0-draft",
"campaignId": "dsh-0.1.2-alpha.2-primary-at-2026-08-31",
"status": "prepared-not-open",
"status": "open",
"preparedOn": "2026-08-31",
"candidate": {
"repository": "https://github.com/omdsh-dev/deepseek-harness",
Expand Down Expand Up @@ -54,34 +54,34 @@
"availabilityGates": [
{
"id": "core-revision-public",
"status": "missing",
"detail": "The public accessibility-core branch does not yet contain candidate revision 5803bfcfdd502adac26ae9b8eec12d6aed263ec6."
"status": "ready",
"detail": "Exact candidate revision 5803bfcfdd502adac26ae9b8eec12d6aed263ec6 is anonymously readable from the public core repository."
},
{
"id": "lab-revision-public",
"status": "missing",
"detail": "The public lab branch does not yet contain lab revision 6aed71615edd1db1ec5b12897e1ad40b79294c78."
"status": "ready",
"detail": "Exact lab revision 6aed71615edd1db1ec5b12897e1ad40b79294c78 is anonymously readable from the public accessibility repository."
},
{
"id": "default-branch-intake",
"status": "missing",
"detail": "The default branch has an older AT form, but it lacks the current protocol-bound AT form, disabled-developer form, campaign guide, and core lab guide."
"status": "ready",
"detail": "The public default branch contains the exact manifest, bilingual campaign and lab guides, current bilingual AT and disabled-developer forms, and bound automated browser report."
},
{
"id": "discussion-current",
"status": "missing",
"detail": "Discussion 16 still names the superseded 0.1.1-rc.2 candidate and must be updated before recruitment."
"status": "ready",
"detail": "Public Discussion 16 contains the exact candidate revision, lab revision, protocol, intake routes, privacy boundary, and zero-human-record statement."
},
{
"id": "tracking-issues-current",
"status": "missing",
"detail": "Issues 1 and 2 still name the superseded 0.1.1-rc.2 candidate and must be updated before recruitment."
"status": "ready",
"detail": "Public Issues 1 and 2 contain the current physical Windows NVDA and physical macOS VoiceOver instructions for the exact campaign."
}
],
"evidenceBoundary": [
"This manifest coordinates a future human campaign; it is not assistive-technology or disabled-user evidence.",
"The isolated Chrome smoke run proves lab readiness and cleanup only; it does not prove spoken, braille, focus, or task behavior.",
"The public human-evidence ledger contains zero human records when this campaign is prepared.",
"External recruitment must not begin until status is open and every availability gate is ready."
"The public human-evidence ledger contains zero human records when this campaign opens.",
"Opening coordinates intake only; it creates no assistive-technology, disabled-user, conformance, certification, or whole-product support claim."
]
}
14 changes: 7 additions & 7 deletions PRIMARY-AT-CAMPAIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@

[简体中文](PRIMARY-AT-CAMPAIGN.zh.md) | English

Campaign status: `prepared-not-open`; external testing is not open. Campaign protocol: `dsh-a11y-primary-at-campaign/0.1.0-draft`. Scenario protocol: `dsh-core-at-lab/1.0.0-draft`. Machine-readable state: [PRIMARY-AT-CAMPAIGN.json](PRIMARY-AT-CAMPAIGN.json).
Campaign status: `open`; real VoiceOver, NVDA, and disabled-developer results may now be submitted. Campaign protocol: `dsh-a11y-primary-at-campaign/0.1.0-draft`. Scenario protocol: `dsh-core-at-lab/1.0.0-draft`. Machine-readable state: [PRIMARY-AT-CAMPAIGN.json](PRIMARY-AT-CAMPAIGN.json).

This first campaign targets exact DSH `0.1.2-alpha.2` revision `5803bfcfdd502adac26ae9b8eec12d6aed263ec6` with exact lab revision `6aed71615edd1db1ec5b12897e1ad40b79294c78`. An isolated-Chrome startup and cleanup smoke run passed for this pair on macOS. A separately regenerated [three-engine browser report](automated-evidence/core-browser/2026-08-31-dsh-0.1.2-alpha.2-5803bfcfdd.json) passes fourteen deterministic checks on the same exact DSH revision and is bound in the machine manifest. These prove only lab and automated-browser readiness; the ledger still contains zero human records.

## Why recruitment is not open yet
## Public availability and evidence boundary

The public core branch and lab branch do not yet contain the two pinned revisions. The default branch lacks this guide, the core lab guide, and the disabled-developer form; its existing older AT form predates the versioned protocols and direct-human/modality gates. [Discussion 16](https://github.com/omdsh-dev/dsh-accessibility/discussions/16), [NVDA Issue 1](https://github.com/omdsh-dev/dsh-accessibility/issues/1), and [VoiceOver Issue 2](https://github.com/omdsh-dev/dsh-accessibility/issues/2) still name the superseded `0.1.1-rc.2` candidate. Inviting people now would give them stale instructions or a missing intake route.
The exact core and lab revisions, this default-branch guide, the bilingual intake forms, [Discussion 16](https://github.com/omdsh-dev/dsh-accessibility/discussions/16), [NVDA Issue 1](https://github.com/omdsh-dev/dsh-accessibility/issues/1), and [VoiceOver Issue 2](https://github.com/omdsh-dev/dsh-accessibility/issues/2) were anonymously verified before the campaign opened. All five `availabilityGates` rows in the manifest are `ready`.

The campaign may change to `open` only after every `availabilityGates` row in the manifest is `ready`. Opening the campaign is coordination state, not accessibility evidence.
Opening the campaign is coordination state, not accessibility evidence. The ledger starts with zero human records; failed and partial submissions are welcome, and no intake Issue becomes a support claim without separate consented, de-identified, validated, and publicly reviewed evidence.

Observe the five gates anonymously before changing that state:
Recheck the five public gates anonymously at any time:

```sh
pnpm run campaign:public:verify
pnpm run campaign:public:require
```

The first command always prints a versioned, privacy-minimized observation report. The strict command exits nonzero unless the exact revisions, default-branch intake, Discussion 16, and Issues 1/2 are all publicly readable and current without credentials. It never edits the campaign and never creates human evidence.
The first command always prints a versioned, privacy-minimized observation report. The strict command exits nonzero unless the exact revisions, default-branch intake, Discussion 16, and Issues 1/2 are all publicly readable and current without credentials. Neither command edits the campaign or creates human evidence.

Maintainer publication order and tested replacement bodies for the default-branch PR, Discussion 16, and Issues 1/2 are in the [primary AT outreach handoff](outreach/primary-at/README.md).

## Exact setup after the campaign opens
## Exact setup for this open campaign

```sh
git clone https://github.com/omdsh-dev/deepseek-harness.git
Expand Down
14 changes: 7 additions & 7 deletions PRIMARY-AT-CAMPAIGN.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@

简体中文 | [English](PRIMARY-AT-CAMPAIGN.md)

活动状态:`prepared-not-open`,尚未向外部测试者开放。活动规程:`dsh-a11y-primary-at-campaign/0.1.0-draft`。场景规程:`dsh-core-at-lab/1.0.0-draft`。机器可读状态:[PRIMARY-AT-CAMPAIGN.json](PRIMARY-AT-CAMPAIGN.json)。
活动状态:`open`;现在可以提交真实 VoiceOver、NVDA 和残障开发者结果。活动规程:`dsh-a11y-primary-at-campaign/0.1.0-draft`。场景规程:`dsh-core-at-lab/1.0.0-draft`。机器可读状态:[PRIMARY-AT-CAMPAIGN.json](PRIMARY-AT-CAMPAIGN.json)。

首轮活动固定到 DSH `0.1.2-alpha.2` 精确 revision `5803bfcfdd502adac26ae9b8eec12d6aed263ec6` 与实验室精确 revision `6aed71615edd1db1ec5b12897e1ad40b79294c78`。这一组合已在 macOS 通过隔离 Chrome 启动与清理冒烟检查;另行重新生成的[三引擎浏览器报告](automated-evidence/core-browser/2026-08-31-dsh-0.1.2-alpha.2-5803bfcfdd.json)也在同一精确 DSH revision 上通过十四项确定性检查,并已绑定进机器清单。它们只证明实验室和自动浏览器就绪;账本仍有零条真人记录。

## 为什么尚未开放招募
## 公开可用性与证据边界

公开核心分支与实验室分支尚未包含上述两个固定 revision;默认分支缺少本指南、核心实验室指南和残障开发者结果表单,现有旧 AT 表单也早于版本化协议、真人直接操作及逐模态观察门禁。[Discussion 16](https://github.com/omdsh-dev/dsh-accessibility/discussions/16)、[NVDA Issue 1](https://github.com/omdsh-dev/dsh-accessibility/issues/1) 与 [VoiceOver Issue 2](https://github.com/omdsh-dev/dsh-accessibility/issues/2) 仍指向已经被替代的 `0.1.1-rc.2` 候选。现在邀请测试者会让他们拿到过时说明或无法使用的提交入口。
活动开放前,已匿名核验精确核心与实验室 revision、本默认分支指南、双语提交表单、[Discussion 16](https://github.com/omdsh-dev/dsh-accessibility/discussions/16)、[NVDA Issue 1](https://github.com/omdsh-dev/dsh-accessibility/issues/1) 和 [VoiceOver Issue 2](https://github.com/omdsh-dev/dsh-accessibility/issues/2)。机器清单的五项 `availabilityGates` 均为 `ready`。

只有机器清单中每个 `availabilityGates` 项都变成 `ready`,活动才能改为 `open`。活动开放只是协调状态,不是真人无障碍证据。
活动开放只是协调状态,不是真人无障碍证据。账本从零条真人记录开始;欢迎失败和部分结果,任何提交 Issue 都必须另行经过同意、去标识化、验证与公开评审,才能成为支持声明证据。

改变状态前,先匿名观察五项门禁:
可随时匿名复核五项公开门禁:

```sh
pnpm run campaign:public:verify
pnpm run campaign:public:require
```

第一条命令总会输出带版本、隐私最小化的观察报告;严格命令只有在精确 revision、默认分支提交入口、Discussion 16 与 Issue 1/2 均无需凭据即可公开读取且为当前版本时才返回成功。它绝不会修改活动清单,也不会创建真人证据。
第一条命令总会输出带版本、隐私最小化的观察报告;严格命令只有在精确 revision、默认分支提交入口、Discussion 16 与 Issue 1/2 均无需凭据即可公开读取且为当前版本时才返回成功。两条命令都不会修改活动清单或创建真人证据。

维护者的公开顺序,以及默认分支 PR、Discussion 16 与 Issue 1/2 的受测试替换正文,见[首轮 AT 公开交接包](outreach/primary-at/README.md)。

## 活动开放后的精确配置
## 本次开放活动的精确配置

```sh
git clone https://github.com/omdsh-dev/deepseek-harness.git
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ See [ACCESSIBILITY.md](ACCESSIBILITY.md) for the assistive-technology matrix, ma

Consented human results use the versioned [human evidence ledger](HUMAN-EVIDENCE.md). Stable tasks and authoritative core, safety, and claim classifications come from the [evidence task catalog](EVIDENCE-CATALOG.json), not from the submitter. The validator preserves failed and partial observations while preventing stale, private, operationally assisted, unsafe, ineligible, unknown, or incomplete records from claiming `a11y-at-tested` or `a11y-user-validated`. The separate [aggregate coverage policy](EVIDENCE-COVERAGE.md) prevents incompatible exact environments from being combined and reports all missing primary and extended AT, CLI, companion, authoring, and disabled-developer rows. The ledger currently contains only a non-evidence template, so all twenty-six aggregate requirements are missing.

The first [primary AT campaign](PRIMARY-AT-CAMPAIGN.md) pins the current core and lab revisions for VoiceOver/Safari, NVDA/Chrome, and disabled-developer core tasks. It remains `prepared-not-open`: public branches, default-branch intake forms, Discussion 16, and Issues 1/2 must be made current before external recruitment begins.
The first [primary AT campaign](PRIMARY-AT-CAMPAIGN.md) is `open` for VoiceOver/Safari, NVDA/Chrome, and disabled-developer core-task submissions against pinned core and lab revisions. Its five public-availability gates pass anonymously, while the human-evidence ledger correctly remains empty until consented results are submitted and reviewed.

## CLI accessibility candidate

Expand Down
2 changes: 1 addition & 1 deletion README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ MVP 仍以阅读为主。发送、停止、批准、编辑排队任务或使用

经过同意的真人结果使用版本化[真人证据账本](HUMAN-EVIDENCE.zh.md)。稳定任务以及核心、安全关键和声明资格只能来自[证据任务目录](EVIDENCE-CATALOG.json),不能由提交者自行决定。validator 会保留失败和部分观察,同时禁止过期、私密、存在未记录协助、不安全、无资格、未知或证据不完整的记录声明 `a11y-at-tested` 或 `a11y-user-validated`。另有[聚合覆盖策略](EVIDENCE-COVERAGE.zh.md)阻止不兼容精确环境相互拼接,并报告主要与扩展辅助技术、CLI、companion、创作及残障开发者验证的全部缺口。当前账本只有非证据模板,因此二十六项聚合要求全部缺失。

首轮[主要辅助技术活动](PRIMARY-AT-CAMPAIGN.zh.md)已固定当前核心与实验室 revision,目标是 VoiceOver/Safari、NVDA/Chrome 和残障开发者核心任务。它仍是 `prepared-not-open`:外部招募前必须先让公开分支、默认分支提交表单、Discussion 16 及 Issue 1/2 与当前候选一致。
首轮[主要辅助技术活动](PRIMARY-AT-CAMPAIGN.zh.md)现已 `open`,可针对固定核心与实验室 revision 提交 VoiceOver/Safari、NVDA/Chrome 和残障开发者核心任务结果。五项公开可用性门禁已通过匿名复核;在经同意的真人结果提交并评审前,真人证据账本仍正确保持为空。

## CLI 无障碍候选

Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Updated: 2026-08-31. This roadmap is evidence-driven and may change after upstre
- Accessible authoring foundation: the bilingual RFC and six standalone local packages now cover both provider chains. The literal-loopback path has an installable, default-inert `dsh-a11y-local-preview/0.1.0-draft` DSH composition; the caller-owned path has a non-serializable, separately permissioned `dsh-a11y-caller-page/0.1.0-draft` trusted-host composition for disposable non-authenticated pages. Real product bundle installation and config composition where applicable, published DSH runtime loading, Chromium auditing, privacy, lifecycle, and package evidence pass locally. The `dsh-a11y-authoring-agent-lab/0.1.2-draft` replay gate proves one exact audit/read/edit/re-audit product loop, validates the untrusted-data framing in both persisted audit results, and requires their eleven-row manual author-review plans to remain unresolved. The new `dsh-a11y-authoring-at-lab/0.1.0-draft` makes the same bounded task available through real DSH Web, proves allow-once changes automated findings from two to zero, proves rejection leaves source unchanged, and defines separate human VoiceOver/NVDA records. Both automated modes are product evidence, not AT or disabled-author evidence. Review/publication, any authenticated/cross-origin authority, live-model repair, listener-verified real AT, and disabled-author evidence remain pending.
- Human evidence ledger: `dsh-a11y-human-evidence/0.1.0-draft` now defines a public JSON Schema, privacy/freshness/claim validator, non-evidence template, and local/CI gate. Its pinned `dsh-a11y-evidence-catalog/0.1.0-draft` revision registers 33 stable tasks across five protocols and owns core, safety, and claim classification. The new `dsh-a11y-evidence-coverage-policy/0.1.0-draft` evaluates six profiles and twenty-six cataloged human-evidence requirements without mixing incompatible exact environments or anonymous disabled-developer records. Its matrix includes primary and extended screen readers, braille, voice and switch input, magnification, CLI, companion, authoring, and disabled-developer validation. A bilingual community guide and dedicated disabled-developer intake now cover contributors who may not use a named AT while requiring consent, a private withdrawal route, exact tasks, assistance, effectiveness, and safety. A fail-closed scaffold command derives non-claim drafts from the catalog without ingesting participant text or overwriting files. The system preserves failures and partial results while failing closed on stale, private, operationally assisted, unsafe, ineffective, unknown, ineligible, or incomplete support claims. No real run is in the ledger and all twenty-six aggregate requirements are missing, so this proves governance readiness rather than AT or disabled-user support.
- Listener-verified Windows and Linux screen-reader results remain pending; complete VoiceOver spoken-output records remain pending.
- Primary human campaign: `dsh-a11y-primary-at-campaign/0.1.0-draft` pins core revision `5803bfcfdd502adac26ae9b8eec12d6aed263ec6` and lab revision `6aed71615edd1db1ec5b12897e1ad40b79294c78` for VoiceOver/Safari, NVDA/Chrome, and disabled-developer core tasks. The isolated Chrome smoke passes, but the campaign remains `prepared-not-open` until both revisions, default-branch intake, Discussion 16, and Issues 1/2 are publicly current.
- Primary human campaign: `dsh-a11y-primary-at-campaign/0.1.0-draft` is `open` against core revision `5803bfcfdd502adac26ae9b8eec12d6aed263ec6` and lab revision `6aed71615edd1db1ec5b12897e1ad40b79294c78` for VoiceOver/Safari, NVDA/Chrome, and disabled-developer core tasks. The isolated Chrome smoke and all five anonymous public-availability gates pass; the human-evidence ledger remains empty pending consented submissions and review.

## Phase 0 — foundation and upstream compatibility (through 2026-09-12)

Expand Down
Loading