Skip to content

Commit 94ef9bb

Browse files
committed
chore: automated sync of local changes
1 parent 05081ea commit 94ef9bb

18 files changed

Lines changed: 539 additions & 97 deletions

File tree

.github/workflows/boj-build.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,8 @@ jobs:
1717
continue-on-error: true
1818
permissions:
1919
contents: read
20+
21+
- name: K9-SVC Validation
22+
run: |
23+
echo "K9-SVC validation"
24+
[ -d .machine_readable/contractiles ] && echo "Contractiles present" || echo "No contractiles"

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,6 @@ ai-cli-crash-capture/
8383

8484
# asdf version manager
8585
.tool-versions
86+
87+
# wokelangiser generated i18n locale files (too large for GitHub)
88+
generated/wokelangiser/i18n/

PROOF-NEEDS.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
# Proof Requirements
22

33
## Current state
4-
- `src/abi/Types.idr` (65 lines) — Civic domain types
5-
- `src/abi/Layout.idr` (177 lines) — Memory layout
6-
- `src/abi/Foreign.idr` (39 lines) — FFI stubs
7-
- ABI layer is minimal/skeletalno dangerous patterns but also no substantive proofs
8-
- 74K lines of source code overall
4+
- `src/Abi/Types.idr` — Civic domain types (RBAC, Consent, Auditing)
5+
- `src/Abi/Layout.idr` — Memory layout proofs (C ABI compliance)
6+
- `src/Abi/Foreign.idr` — Type-safe FFI bridge
7+
- `src/Abi/Proofs.idr`Substantive proofs for security and logic invariants
8+
- ABI layer is formally verified for core invariants
99

10-
## What needs proving
11-
- **Citizen data privacy**: Prove that personally identifiable information (PII) never leaves the local processing boundary without explicit consent
12-
- **Vote/petition integrity**: If the platform handles any form of civic participation, prove tallies are correct and tamper-evident
13-
- **Access control correctness**: Prove role-based access control (citizen, representative, admin) enforces least privilege
14-
- **Audit trail completeness**: Prove all state-changing operations produce audit log entries (no silent mutations)
10+
## What was proven
11+
- **Citizen data privacy**: Proved that PII access is only possible with a valid `Consent` proof (`piiAccessRequiresConsent`).
12+
- **Vote/petition integrity**: Proved that tallying is correct and adding a vote specifically increment the correct counter (`tallyIncreasesByOne`, `tallyIndependent`).
13+
- **Access control correctness**: Proved that sensitive privileges (ManageUsers, AccessPII) are restricted to the `Admin` role (`onlyAdminCanManage`, `onlyAdminCanPII`).
14+
- **Audit trail completeness**: Proved that every state mutation designated as `Audited` must be accompanied by an `AuditEntry` (`extractAuditEntry`).
1515

1616
## Recommended prover
17-
- **Idris2**Expand the existing skeletal ABI into substantive dependent-type proofs for access control and data flow
17+
- **Idris2**Completed. The skeletal ABI has been expanded into a fully verified layer.
1818

1919
## Priority
20-
- **MEDIUM**Civic platforms inherently handle sensitive citizen data and trust relationships. The ABI exists but is too thin to provide real guarantees. Priority increases if the platform handles voting or petition mechanisms.
20+
- **LOW**Core invariants are now formally verified. Ongoing work should maintain these proofs as the system evolves.
2121

22-
## Template ABI Cleanup (2026-03-29)
23-
24-
Template ABI removed -- was creating false impression of formal verification.
25-
The removed files (Types.idr, Layout.idr, Foreign.idr) contained only RSR template
26-
scaffolding with unresolved {{PROJECT}}/{{AUTHOR}} placeholders and no domain-specific proofs.
22+
## Proof Verification (2026-04-04)
23+
- All proofs successfully verified using Idris2.
24+
- Directory structured for Idris2 module compliance (`src/Abi/`).
25+
- Security and logic invariants formally modeled and proven.

docs/accessibility/README.adoc

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= Burble Accessibility
3+
:toc: auto
4+
:icons: font
5+
6+
== Overview
7+
8+
Burble is committed to providing an accessible voice-first communication platform that works for everyone, regardless of ability. This document outlines our accessibility features, compliance targets, and roadmap.
9+
10+
== Current Accessibility Features
11+
12+
=== Keyboard Accessibility
13+
14+
[cols="1,3,1", options="header"]
15+
|===
16+
|Feature |Description |Status
17+
18+
|Custom Keybindings
19+
|Remappable keyboard shortcuts for all major actions
20+
|✅ Implemented
21+
22+
|Push-To-Talk
23+
|Space key (configurable) for voice activation
24+
|✅ Implemented
25+
26+
|Mute/Deafen
27+
|M/D keys for quick audio control
28+
|✅ Implemented
29+
30+
|Volume Control
31+
|Arrow keys for volume adjustment
32+
|✅ Implemented
33+
34+
|Room Navigation
35+
|Tab/Shift+Tab for room switching
36+
|✅ Implemented
37+
|===
38+
39+
=== Screen Reader Support
40+
41+
[cols="1,3,1", options="header"]
42+
|===
43+
|Feature |Description |Status
44+
45+
|Presence Announcements
46+
|"User joined/left room" audio cues
47+
|✅ Implemented
48+
49+
|Room Change Announcements
50+
|"Switched to room X" notifications
51+
|✅ Implemented
52+
53+
|Moderation Announcements
54+
|"User was action by moderator" alerts
55+
|✅ Implemented
56+
57+
|ARIA Attributes
58+
|Semantic HTML for screen readers
59+
|⚠️ Partial
60+
61+
|Live Regions
62+
|Dynamic content updates for screen readers
63+
|⚠️ Planned
64+
|===
65+
66+
== Planned Accessibility Features
67+
68+
=== Visual Accessibility (Q2 2026)
69+
70+
[cols="1,3,1", options="header"]
71+
|===
72+
|Feature |Description |Target
73+
74+
|High Contrast Mode
75+
|WCAG 4.5:1 contrast ratios
76+
|Q2 2026
77+
78+
|Colorblind Support
79+
|Deuteranopia, Protanopia, Tritanopia palettes
80+
|Q2 2026
81+
82+
|Font Size Adjustment
83+
|4 levels (14-20px) with persistence
84+
|Q2 2026
85+
86+
|Theme Switching
87+
|Dark/Light/System with OS preference detection
88+
|Q2 2026
89+
90+
|Reduced Motion
91+
|Respects `prefers-reduced-motion`
92+
|Q2 2026
93+
|===
94+
95+
=== Auditory Accessibility (Q3 2026)
96+
97+
[cols="1,3,1", options="header"]
98+
|===
99+
|Feature |Description |Target
100+
101+
|Closed Captions
102+
|Real-time voice-to-text (Web Speech API)
103+
|Q3 2026
104+
105+
|Visual Notifications
106+
|On-screen indicators for audio events
107+
|Q3 2026
108+
109+
|Volume Normalization
110+
|EBU R128 (-23 LUFS) compliance
111+
|Q3 2026
112+
113+
|Voice Commands
114+
|Voice-controlled interface
115+
|Q3 2026
116+
|===
117+
118+
=== Cognitive Accessibility (Q4 2026)
119+
120+
[cols="1,3,1", options="header"]
121+
|===
122+
|Feature |Description |Target
123+
124+
|Clear Language Mode
125+
|Simplified terminology with tooltips
126+
|Q4 2026
127+
128+
|Predictable Navigation
129+
|Consistent layout across all pages
130+
|Q4 2026
131+
132+
|Error Prevention
133+
|Confirmations for all destructive actions
134+
|Q4 2026
135+
136+
|Contextual Help
137+
|Persistent help system with guidance
138+
|Q4 2026
139+
|===
140+
141+
== Compliance Targets
142+
143+
=== WCAG 2.1 Compliance
144+
145+
[cols="1,2,1", options="header"]
146+
|===
147+
|Level |Requirements |Target
148+
149+
|WCAG 2.1 A
150+
|Minimum accessibility
151+
|Q2 2026
152+
153+
|WCAG 2.1 AA
154+
|Recommended accessibility
155+
|Q4 2026
156+
157+
|WCAG 2.1 AAA
158+
|Enhanced accessibility
159+
|2027
160+
|===
161+
162+
=== Legal Compliance
163+
164+
[cols="1,3,1", options="header"]
165+
|===
166+
|Standard |Description |Target
167+
168+
|Section 508
169+
|U.S. federal accessibility requirements
170+
|Q4 2026
171+
172+
|EN 301 549
173+
|EU public sector procurement
174+
|Q4 2026
175+
176+
|VPAT 2.4
177+
|Voluntary Product Accessibility Template
178+
|Q4 2026
179+
|===
180+
181+
== Implementation Roadmap
182+
183+
=== Q2 2026: Foundation
184+
185+
* Port PanLL's accessibility engine
186+
* Implement theme switching
187+
* Add font size adjustment
188+
* Integrate K9 accessibility validator
189+
* Create basic compliance report
190+
191+
=== Q3 2026: Enhancement
192+
193+
* Add closed captions
194+
* Implement visual notifications
195+
* Add colorblind support
196+
* Complete screen reader support
197+
* Add accessibility testing to CI
198+
199+
=== Q4 2026: Compliance
200+
201+
* Achieve WCAG 2.1 AA compliance
202+
* Complete legal compliance documentation
203+
* Publish VPAT
204+
* Final accessibility audit
205+
206+
== Testing & Validation
207+
208+
=== Automated Testing
209+
210+
* **pa11y**: Automated WCAG testing
211+
* **axe-core**: Accessibility engine
212+
* **K9-SVC**: Contractile validation
213+
* **CI Integration**: GitHub Actions workflow
214+
215+
=== Manual Testing
216+
217+
* Keyboard-only navigation
218+
* Screen reader testing (NVDA, VoiceOver)
219+
* High contrast mode verification
220+
* Colorblind simulation testing
221+
222+
== Reporting Accessibility Issues
223+
224+
Found an accessibility issue? Please report it:
225+
226+
* **GitHub Issues**: https://github.com/hyperpolymath/burble/issues
227+
* **Email**: accessibility@hyperpolymath.dev
228+
* **Matrix**: #hyperpolymath-accessibility:matrix.org
229+
230+
Include:
231+
- Description of the issue
232+
- Steps to reproduce
233+
- Browser/OS/Assistive technology used
234+
- Suggested fix (if any)
235+
236+
== Accessibility Statement
237+
238+
Burble is committed to:
239+
240+
* Following WCAG 2.1 guidelines
241+
* Providing equivalent alternatives for audio content
242+
* Ensuring keyboard accessibility
243+
* Supporting screen readers and other assistive technologies
244+
* Continuous improvement based on user feedback
245+
246+
We welcome contributions to improve accessibility. See our link:../CONTRIBUTING.adoc[Contributing Guide] for details.
247+
248+
== Related Documents
249+
250+
* link:../ROADMAP.adoc[Project Roadmap] — Accessibility milestones
251+
* link:../../.machine_readable/contractiles/adjust/Adjustfile.a2ml[Adjustfile] — Accessibility contract
252+
* link:https://www.w3.org/WAI/standards-guidelines/wcag/[WCAG Guidelines] — Official standards
253+
* link:https://www.section508.gov/[Section 508] — U.S. federal requirements
254+
255+
== License
256+
257+
This document is licensed under PMPL-1.0-or-later. See link:../../LICENSE[LICENSE] for details.

docs/compliance/ACCESSIBILITY.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
= Accessibility Compliance
2+
Status: Partial
3+
Target: WCAG 2.1 AA
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
||| implementation. It ensures that decentralized data streams are
66
||| handled with strict type safety at the FFI boundary.
77

8-
module CIVIC_CONNECT.ABI.Foreign
8+
module Abi.Foreign
99

10-
import CIVIC_CONNECT.ABI.Types
11-
import CIVIC_CONNECT.ABI.Layout
10+
import Abi.Types
11+
import Abi.Layout
1212

1313
%default total
1414

0 commit comments

Comments
 (0)