Skip to content

Commit 82f84cd

Browse files
committed
chore: automated sync of local changes
1 parent f0c3e3f commit 82f84cd

15 files changed

Lines changed: 1492 additions & 111 deletions
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Adjustfile — Accessibility Contract for Burble
3+
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
#
5+
# Accessibility requirements and compliance for Burble.
6+
# Voice-first design must be inclusive for all users.
7+
#
8+
# Run with: adjust check
9+
# Fix with: adjust fix (where deterministic fix exists)
10+
11+
@abstract:
12+
Accessibility requirements and compliance for the Burble voice-first communications platform.
13+
These requirements ensure Burble is usable by everyone, regardless of ability.
14+
@end
15+
16+
## Keyboard Accessibility
17+
18+
### keyboard-navigation
19+
- description: All features accessible via keyboard
20+
- status: partial
21+
- probe: test -f server/lib/burble/accessibility/keyboard.ex
22+
- compliance: WCAG 2.1 AA
23+
- notes: Basic navigation implemented. Full keyboard-only flow needed.
24+
- fix: Port PanLL's comprehensive keyboard navigation system
25+
26+
### custom-keybindings
27+
- description: User-configurable keybindings
28+
- status: implemented
29+
- probe: test -f server/lib/burble/accessibility/keyboard.ex
30+
- compliance: WCAG 2.1 AAA
31+
- notes: Users can remap PTT, mute, deafen, volume, and room navigation keys
32+
33+
### keyboard-shortcuts-discoverable
34+
- description: Keyboard shortcuts are documented and discoverable
35+
- status: missing
36+
- compliance: WCAG 2.1 A
37+
- fix: Add keyboard shortcuts help modal in web client
38+
39+
## Visual Accessibility
40+
41+
### high-contrast-mode
42+
- description: High contrast UI theme
43+
- status: missing
44+
- compliance: WCAG 2.1 AA
45+
- fix: Port PanLL's high-contrast theme system
46+
- target: CSS variables for contrast ratios >= 4.5:1
47+
48+
### colorblind-support
49+
- description: Colorblind-friendly color schemes
50+
- status: missing
51+
- compliance: WCAG 2.1 AA
52+
- fix: Implement deuteranopia, protanopia, and tritanopia palettes
53+
- reference: PanLL's palette system
54+
55+
### font-size-adjustment
56+
- description: Resizable UI fonts (4 levels: 14-20px)
57+
- status: missing
58+
- compliance: WCAG 2.1 AA
59+
- fix: Port PanLL's font size adjustment system
60+
- target: User preference persists across sessions
61+
62+
### theme-switching
63+
- description: Dark/Light/System theme support
64+
- status: missing
65+
- compliance: WCAG 2.1 AA
66+
- fix: Port PanLL's theme system
67+
- target: Respects OS preference, user override
68+
69+
## Auditory Accessibility
70+
71+
### screen-reader-support
72+
- description: Full screen reader compatibility
73+
- status: partial
74+
- probe: test -f server/lib/burble/accessibility/screen_reader.ex
75+
- compliance: WCAG 2.1 AA
76+
- notes: Basic announcements implemented. Needs ARIA attributes and live regions.
77+
- fix: Complete ARIA implementation in web client
78+
79+
### closed-captions
80+
- description: Real-time captioning for voice chat
81+
- status: missing
82+
- compliance: WCAG 2.1 AA
83+
- notes: Requires Web Speech API or external STT integration
84+
- target: 90%+ accuracy for English, configurable display
85+
86+
### visual-notifications
87+
- description: Visual indicators for audio events
88+
- status: missing
89+
- compliance: WCAG 2.1 A
90+
- notes: Speaking indicators, mute status, connection status
91+
- fix: Add visual cues that duplicate audio information
92+
93+
### volume-normalization
94+
- description: Consistent volume levels across users
95+
- status: missing
96+
- compliance: WCAG 2.1 AA
97+
- notes: Prevents sudden loud sounds for sensitive users
98+
- target: -23 LUFS normalization per EBU R128
99+
100+
## Motor Accessibility
101+
102+
### voice-commands
103+
- description: Voice-controlled interface
104+
- status: missing
105+
- compliance: WCAG 2.1 AAA
106+
- notes: "Mute", "Deafen", "Join room X", "Volume up/down"
107+
- target: Web Speech API with fallback to keyboard
108+
109+
### reduced-motion
110+
- description: Reduced animation options
111+
- status: missing
112+
- compliance: WCAG 2.1 AA
113+
- fix: Port PanLL's animation control (on/reduced/off)
114+
- target: Respects prefers-reduced-motion media query
115+
116+
### hover-alternatives
117+
- description: All hover interactions have click alternatives
118+
- status: partial
119+
- compliance: WCAG 2.1 AA
120+
- notes: Some hover tooltips need click-to-show option
121+
- fix: Audit and add click alternatives
122+
123+
## Cognitive Accessibility
124+
125+
### clear-language
126+
- description: Simple, consistent terminology
127+
- status: partial
128+
- compliance: WCAG 2.1 AAA
129+
- notes: Technical terms need plain language explanations
130+
- fix: Add tooltips/glossary for jargon
131+
132+
### predictable-navigation
133+
- description: Consistent navigation patterns
134+
- status: partial
135+
- compliance: WCAG 2.1 AA
136+
- notes: Navigation structure varies between pages
137+
- fix: Standardize navigation layout
138+
139+
### error-prevention
140+
- description: Confirmation for destructive actions
141+
- status: partial
142+
- compliance: WCAG 2.1 AA
143+
- notes: Room deletion has confirmation, others may not
144+
- fix: Audit all destructive actions
145+
146+
### help-availability
147+
- description: Context-sensitive help always available
148+
- status: missing
149+
- compliance: WCAG 2.1 AAA
150+
- notes: No persistent help system
151+
- fix: Add help button with contextual guidance
152+
153+
## Compliance Targets
154+
155+
### wcag-2.1-aa
156+
- description: WCAG 2.1 AA compliance
157+
- status: partial
158+
- target: Full compliance by Q4 2026
159+
- tracking: https://github.com/hyperpolymath/burble/issues/XXX
160+
161+
### section-508
162+
- description: U.S. Section 508 compliance
163+
- status: partial
164+
- target: Full compliance by Q4 2026
165+
- notes: Aligns with WCAG 2.1 AA for most requirements
166+
167+
### en-301-549
168+
- description: EU EN 301 549 compliance
169+
- status: partial
170+
- target: Full compliance by Q4 2026
171+
- notes: EU public sector procurement requirement
172+
173+
## Integration Requirements
174+
175+
### panll-accessibility-port
176+
- description: Port PanLL's accessibility engine to Burble
177+
- status: planned
178+
- reference: /var/mnt/eclipse/repos/panll/tests/accessibility_engine_test.js
179+
- target: Q2 2026
180+
181+
### k9-accessibility-validator
182+
- description: Integrate K9 accessibility validator
183+
- status: planned
184+
- reference: /var/mnt/eclipse/repos/panll/contractiles/k9/validators/accessibility-baseline.k9.ncl
185+
- target: Q2 2026
186+
187+
### accessibility-testing
188+
- description: Add accessibility tests to CI/CD
189+
- status: planned
190+
- target: pa11y or axe-core integration
191+
- compliance: Automated WCAG testing
192+
193+
## Documentation Requirements
194+
195+
### accessibility-guide
196+
- description: User-facing accessibility guide
197+
- status: missing
198+
- target: docs/accessibility/USER-GUIDE.adoc
199+
- notes: Keyboard shortcuts, screen reader setup, theme switching
200+
201+
### developer-accessibility
202+
- description: Developer accessibility guidelines
203+
- status: missing
204+
- target: docs/accessibility/DEVELOPER.adoc
205+
- notes: Coding standards, testing requirements, compliance checklist
206+
207+
### compliance-report
208+
- description: Accessibility compliance report
209+
- status: missing
210+
- target: docs/compliance/ACCESSIBILITY.adoc
211+
- notes: VPAT (Voluntary Product Accessibility Template)
Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
2-
# Dustfile — Cleanup and hygiene contract
2+
# Dustfile — Cleanup and hygiene contract for Burble
33
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
#
5+
# What should be cleaned up. Housekeeping, not blockers.
6+
# Run with: dust status
7+
# Roll back with: dust rollback <name>
48

59
@abstract:
6-
What should be cleaned up or removed from this repository.
7-
These are housekeeping items, not blockers.
10+
Cleanup and hygiene items for the Burble voice platform.
11+
These are maintenance tasks — not blocking, but should be addressed.
812
@end
913

1014
## Stale Files
1115

1216
### no-stale-snapshots
1317
- description: No dated status/completion files in root
14-
- run: "! ls *-STATUS-*.md *-COMPLETION-*.md *-COMPLETE.md *-VERIFIED-*.md 2>/dev/null | head -1 | grep -q ."
18+
- run: test -z "$(ls *-STATUS-*.md *-COMPLETION-*.md 2>/dev/null)"
1519
- severity: info
1620

1721
### no-ai-djot
@@ -26,19 +30,49 @@ These are housekeeping items, not blockers.
2630

2731
## Build Artifacts
2832

29-
### no-tracked-artifacts
30-
- description: No build artifacts tracked in git
31-
- run: "! git ls-files lib/bs/ lib/ocaml/ target/release/ _build/ 2>/dev/null | head -1 | grep -q ."
33+
### no-tracked-elixir-build
34+
- description: No Elixir build artifacts tracked in git
35+
- run: test -z "$(git ls-files server/_build/ server/deps/ 2>/dev/null)"
3236
- severity: warning
3337

38+
### no-tracked-rescript-build
39+
- description: No ReScript build artifacts tracked in git
40+
- run: test -z "$(git ls-files 'client/web/src/**/*.res.mjs' client/web/lib/ 2>/dev/null)"
41+
- severity: warning
42+
43+
## Burble-Specific Cleanup
44+
45+
### stale-room-processes
46+
- description: Room processes should auto-terminate after idle timeout
47+
- verification: Burble.Rooms.Room uses @idle_timeout_ms (5 minutes)
48+
- severity: info
49+
- notes: Not a file check — design verification that idle rooms are cleaned up
50+
51+
### expired-invite-tokens
52+
- description: Expired invite tokens should be purged periodically
53+
- verification: Scheduled task purges tokens past expires_at
54+
- severity: info
55+
- notes: Planned — not yet implemented
56+
57+
### orphaned-turn-credentials
58+
- description: TURN credentials expire after 1 hour
59+
- verification: Burble.Media.Privacy.generate_turn_credential sets TTL
60+
- severity: info
61+
62+
### template-example-trustfile
63+
- description: Remove the example Trustfile (keep only the real one)
64+
- run: test ! -f .machine_readable/contractiles/trust/Trustfile_just_an_example.a2ml
65+
- severity: info
66+
- rollback: git checkout HEAD -- .machine_readable/contractiles/trust/Trustfile_just_an_example.a2ml
67+
3468
## Format Duplicates
3569

3670
### no-duplicate-contributing
37-
- description: Only one CONTRIBUTING format (keep .md)
38-
- run: "! (test -f CONTRIBUTING.md && test -f CONTRIBUTING.adoc)"
71+
- description: Only one CONTRIBUTING format
72+
- run: test -z "$(test -f CONTRIBUTING.md && test -f CONTRIBUTING.adoc && echo dup)"
3973
- severity: warning
4074

4175
### no-duplicate-readme
4276
- description: Only one README format
43-
- run: "! (test -f README.md && test -f README.adoc && [ $(wc -l < README.md) -gt 5 ])"
77+
- run: test ! -f README.md || test ! -f README.adoc
4478
- severity: warning
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Intentfile (A2ML Canonical)
3+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath)
4+
5+
@abstract:
6+
Declared intent and purpose for Burble.
7+
@end
8+
9+
## Purpose
10+
11+
Burble — // SPDX-License-Identifier: PMPL-1.0-or-later
12+
13+
## Anti-Purpose
14+
15+
This project is NOT:
16+
- A fork or wrapper around another tool
17+
- A monorepo (unless explicitly structured as one)
18+
19+
## If In Doubt
20+
21+
If you are unsure whether a change is in scope, ask.
22+
Sensitive areas: ABI definitions, license headers, CI workflows.

.machine_readable/contractiles/k9/README.adoc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ K9 contractiles integrate with other RSR standards:
130130
⚠️ **Never run as root unless required** +
131131
⚠️ **Sandbox external components**
132132

133-
**See:** https://github.com/hyperpolymath/k9-svc/blob/main/docs/SECURITY-BEST-PRACTICES.adoc
133+
**See:** https://github.com/hyperpolymath/standards/blob/main/k9-svc/docs/SECURITY-BEST-PRACTICES.adoc
134134

135135
== Template Files
136136

@@ -154,14 +154,15 @@ chmod +x nickel && sudo mv nickel /usr/local/bin/
154154
cargo install just
155155
156156
# Clone K9-SVC (for must shim and tooling)
157-
git clone https://github.com/hyperpolymath/k9-svc.git
157+
git clone https://github.com/hyperpolymath/standards.git
158+
# Note: K9-SVC is located in standards/k9-svc
158159
----
159160

160161
== Learn More
161162

162-
- **K9-SVC Specification:** https://github.com/hyperpolymath/k9-svc/blob/main/SPEC.adoc
163-
- **K9 User Guide:** https://github.com/hyperpolymath/k9-svc/blob/main/GUIDE.adoc
164-
- **Security Documentation:** https://github.com/hyperpolymath/k9-svc/blob/main/docs/SECURITY-FAQ.adoc
163+
- **K9-SVC Specification:** https://github.com/hyperpolymath/standards/blob/main/k9-svc/SPEC.adoc
164+
- **K9 User Guide:** https://github.com/hyperpolymath/standards/blob/main/k9-svc/GUIDE.adoc
165+
- **Security Documentation:** https://github.com/hyperpolymath/standards/blob/main/k9-svc/docs/SECURITY-FAQ.adoc
165166
- **IANA Media Type:** `application/vnd.k9+nickel`
166167

167168
== Contributing
@@ -174,4 +175,4 @@ When adding K9 contractiles to your repository:
174175
4. Sign Hunt-level components before committing
175176
5. Add K9 validation to CI/CD pipeline
176177

177-
**Questions?** Open an issue on https://github.com/hyperpolymath/k9-svc
178+
**Questions?** Open an issue on https://github.com/hyperpolymath/standards/tree/main/k9-svc

0 commit comments

Comments
 (0)