docs: record content and media acceptance

This commit is contained in:
2026-09-05 01:38:53 +03:00
parent c6e17ad196
commit 77a9492fad
4 changed files with 102 additions and 19 deletions

View File

@@ -1,9 +1,10 @@
# WCAG 2.2 A/AA release checklist # WCAG 2.2 A/AA release checklist
This is a release checkpoint for the portfolio, not a claim that automated This is a release checkpoint for the portfolio, not a claim that automated
testing can certify accessibility. Automated checks are complete for the testing can certify accessibility. Automated checks and the current-Chromium
current preview build. The named physical screen-reader runs and final visual compiled-preview visual review are complete for the current build. The named
review remain **pending release evidence**, not code failures. physical screen-reader and non-Chromium platform runs remain **pending release
evidence**, not code failures.
## Evidence status ## Evidence status
@@ -19,8 +20,8 @@ review remain **pending release evidence**, not code failures.
| NVDA + Firefox on Windows | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic changes | | NVDA + Firefox on Windows | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic changes |
| VoiceOver + Safari on macOS | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic changes | | VoiceOver + Safari on macOS | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic changes |
| VoiceOver + Safari on iOS | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic/touch changes | | VoiceOver + Safari on iOS | **PENDING PHYSICAL RUN** — use `screen-reader-scripts.md`; record versions and results below | Before public release and after material semantic/touch changes |
| Final visual focus/overflow review | **PENDING RELEASE REVIEW** — automated geometry is necessary but not sufficient | Before public release | | Final visual focus/overflow review | **PASS in current Chromium (2026-09-05)** — desktop, 320 CSS px, zoom-equivalent, Static, reduced-motion, keyboard, no-JavaScript, and print-relevant views inspected | Before public release on the named physical platforms |
| Final encoded-media flash/caption review | **PENDING ASSET APPROVAL** — current public preview has no cleared project media | When any approved video/chart/image derivative is added | | Final encoded-media flash/caption review | **PASS for current still-image surface** — approved screenshots/charts have authored captions and descriptions; no video is published | When any video or replacement derivative is added |
Focused command: Focused command:
@@ -34,6 +35,14 @@ profile, and the desktop 400% zoom-equivalent case runs only in the desktop
profile. No axe violation is suppressed. No false-positive exception is profile. No axe violation is suppressed. No false-positive exception is
currently recorded. currently recorded.
The 2026-09-05 final content/media acceptance matrix ran the semantic,
keyboard, no-JavaScript, reduced-motion, forced-colors, reflow, responsive,
media-policy/failure, and visual-regression files in desktop and mobile
Chromium. It passed 94 checks with 26 intentional project/capability skips and
no failures. The no-JavaScript oracle includes visible captions, chart
descriptions, and exact-value table text. A clean-context reduced-motion
capture showed the same complete identity hierarchy as Static/default.
## Criterion checklist ## Criterion checklist
Status meanings: Status meanings:
@@ -46,10 +55,10 @@ Status meanings:
| WCAG 2.2 criterion | Status | Current evidence / release action | | WCAG 2.2 criterion | Status | Current evidence / release action |
| ----------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1.1.1 Non-text Content | Automated PASS; manual pending | Decorative world/canvas/poster are hidden or empty-alt; one concise scene description is semantic. Approved project media must keep authored alt/description. | | 1.1.1 Non-text Content | Automated + current visual PASS; platform pending | Decorative world/canvas/poster are hidden or empty-alt; one concise scene description is semantic. Approved screenshots/charts have authored captions and descriptions. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | N/A current surface | Generated ambience is interactive, not prerecorded speech. Reopen for approved prerecorded media. | | 1.2.1 Audio-only and Video-only (Prerecorded) | N/A current surface | Generated ambience is interactive, not prerecorded speech. Reopen for approved prerecorded media. |
| 1.2.2 Captions (Prerecorded) | N/A current surface | No cleared public video. Reopen and verify captions when a video derivative is approved. | | 1.2.2 Captions (Prerecorded) | N/A current surface | No public video. Reopen and verify captions when a video derivative is approved. |
| 1.2.3 Audio Description or Media Alternative | N/A current surface | Video component supports an adjacent structured description; verify the final approved clip manually. | | 1.2.3 Audio Description or Media Alternative | N/A current surface | No public video; the component supports an adjacent structured description if one is later approved. |
| 1.2.4 Captions (Live) | N/A current surface | No live media. | | 1.2.4 Captions (Live) | N/A current surface | No live media. |
| 1.2.5 Audio Description (Prerecorded) | N/A current surface | Reopen for approved prerecorded video. | | 1.2.5 Audio Description (Prerecorded) | N/A current surface | Reopen for approved prerecorded video. |
| 1.3.1 Info and Relationships | Automated PASS; manual pending | Native landmarks, headings, lists, figures, captions, definition lists, and tables; confirm screen-reader output. | | 1.3.1 Info and Relationships | Automated PASS; manual pending | Native landmarks, headings, lists, figures, captions, definition lists, and tables; confirm screen-reader output. |
@@ -57,13 +66,13 @@ Status meanings:
| 1.3.3 Sensory Characteristics | Automated PASS | Instructions and state do not depend only on location, shape, or color. | | 1.3.3 Sensory Characteristics | Automated PASS | Instructions and state do not depend only on location, shape, or color. |
| 1.3.4 Orientation | Automated PASS | Responsive checks do not lock orientation. | | 1.3.4 Orientation | Automated PASS | Responsive checks do not lock orientation. |
| 1.3.5 Identify Input Purpose | N/A current surface | No personal-data form inputs. | | 1.3.5 Identify Input Purpose | N/A current surface | No personal-data form inputs. |
| 1.4.1 Use of Color | Automated PASS; visual pending | State controls use visible text and native state, not color alone. | | 1.4.1 Use of Color | Automated + current visual PASS; platform pending | State controls use visible text and native state, not color alone. |
| 1.4.2 Audio Control | Automated PASS; manual pending | Sound starts only after explicit activation and immediately exposes Mute and Sound volume. | | 1.4.2 Audio Control | Automated PASS; manual pending | Sound starts only after explicit activation and immediately exposes Mute and Sound volume. |
| 1.4.3 Contrast (Minimum) | Automated PASS; visual pending | Axe reports no contrast violation in all named states; final visual review is required. | | 1.4.3 Contrast (Minimum) | Automated + current visual PASS; platform pending | Axe reports no contrast violation in all named states; current-Chromium review found the information layer readable over the scene. |
| 1.4.4 Resize Text | Automated PASS | Desktop Chromium effective 320 CSS px gate represents the 400% zoom boundary. | | 1.4.4 Resize Text | Automated PASS | Desktop Chromium effective 320 CSS px gate represents the 400% zoom boundary. |
| 1.4.5 Images of Text | Automated PASS | Information is text/semantic HTML; project screenshots do not replace portfolio copy. | | 1.4.5 Images of Text | Automated PASS | Information is text/semantic HTML; project screenshots do not replace portfolio copy. |
| 1.4.10 Reflow | Automated PASS | No horizontal loss at 320 CSS px mobile or desktop zoom-equivalent width. | | 1.4.10 Reflow | Automated PASS | No horizontal loss at 320 CSS px mobile or desktop zoom-equivalent width. |
| 1.4.11 Non-text Contrast | Automated PASS; visual pending | Control/focus/border visibility survives forced colors; final visual review remains. | | 1.4.11 Non-text Contrast | Automated + current visual PASS; platform pending | Control/focus/border visibility survives forced colors and the current-Chromium visual review. |
| 1.4.12 Text Spacing | Automated PASS | WCAG spacing override preserves all checked content and Contact. | | 1.4.12 Text Spacing | Automated PASS | WCAG spacing override preserves all checked content and Contact. |
| 1.4.13 Content on Hover or Focus | N/A current surface | No hover/focus-triggered disclosure or tooltip. | | 1.4.13 Content on Hover or Focus | N/A current surface | No hover/focus-triggered disclosure or tooltip. |
| 2.1.1 Keyboard | Automated PASS; manual pending | Native links/buttons/select/range and section navigation are operable by keyboard. | | 2.1.1 Keyboard | Automated PASS; manual pending | Native links/buttons/select/range and section navigation are operable by keyboard. |
@@ -71,15 +80,15 @@ Status meanings:
| 2.1.4 Character Key Shortcuts | N/A current surface | No single-character shortcuts. | | 2.1.4 Character Key Shortcuts | N/A current surface | No single-character shortcuts. |
| 2.2.1 Timing Adjustable | N/A current surface | No session or content timeout. | | 2.2.1 Timing Adjustable | N/A current surface | No session or content timeout. |
| 2.2.2 Pause, Stop, Hide | Automated PASS; manual pending | Pause/Resume/Static controls stop decorative motion; authored video controls are required when media ships. | | 2.2.2 Pause, Stop, Hide | Automated PASS; manual pending | Pause/Resume/Static controls stop decorative motion; authored video controls are required when media ships. |
| 2.3.1 Three Flashes or Below Threshold | Manual pending | Final live scene and any encoded media need release visual/flash review. No flashing project media ships currently. | | 2.3.1 Three Flashes or Below Threshold | Automated + current visual PASS; platform pending | The live-scene flash sequence and reviewed states pass; only still project media ships. |
| 2.4.1 Bypass Blocks | Automated PASS; manual pending | First focusable control is the visible Skip to portfolio content link. | | 2.4.1 Bypass Blocks | Automated PASS; manual pending | First focusable control is the visible Skip to portfolio content link. |
| 2.4.2 Page Titled | Automated PASS | Generated document title names Luca and the hybrid role. | | 2.4.2 Page Titled | Automated PASS | Generated document title names Luca and the hybrid role. |
| 2.4.3 Focus Order | Automated PASS; manual pending | Skip, ordered section navigation, content actions, Contact, then drive controls. | | 2.4.3 Focus Order | Automated PASS; manual pending | Skip, ordered section navigation, content actions, Contact, then drive controls. |
| 2.4.4 Link Purpose (In Context) | Automated PASS; manual pending | Visible labels identify section, email, and profile destinations. | | 2.4.4 Link Purpose (In Context) | Automated PASS; manual pending | Visible labels identify section, email, and profile destinations. |
| 2.4.5 Multiple Ways | Automated PASS | Persistent section navigation and native document scrolling provide two ways to reach content. | | 2.4.5 Multiple Ways | Automated PASS | Persistent section navigation and native document scrolling provide two ways to reach content. |
| 2.4.6 Headings and Labels | Automated PASS; manual pending | Ordered headings and explicit control labels; confirm announcements. | | 2.4.6 Headings and Labels | Automated PASS; manual pending | Ordered headings and explicit control labels; confirm announcements. |
| 2.4.7 Focus Visible | Automated PASS; visual pending | At least 2px visible indicator or an inset main-content indicator; forced-colors gate passes. | | 2.4.7 Focus Visible | Automated + current visual PASS; platform pending | At least 2px visible indicator or an inset main-content indicator; keyboard and forced-colors review passes. |
| 2.4.11 Focus Not Obscured (Minimum) | Automated PASS; visual pending | Focus bounds have zero intersection with unrelated fixed HUD/controls; short viewports move controls into document flow. | | 2.4.11 Focus Not Obscured (Minimum) | Automated + current visual PASS; platform pending | Focus bounds have zero intersection with unrelated fixed HUD/controls; short viewports move controls into document flow. |
| 2.5.1 Pointer Gestures | N/A current surface | No multipoint or path-based gesture. | | 2.5.1 Pointer Gestures | N/A current surface | No multipoint or path-based gesture. |
| 2.5.2 Pointer Cancellation | Automated PASS | Native click activation occurs on release; no custom down-only action. | | 2.5.2 Pointer Cancellation | Automated PASS | Native click activation occurs on release; no custom down-only action. |
| 2.5.3 Label in Name | Automated PASS | Visible button/link labels are their accessible names. | | 2.5.3 Label in Name | Automated PASS | Visible button/link labels are their accessible names. |

View File

@@ -2,6 +2,8 @@
This checklist records the Phase 1 public projection. Every item is either included as approved public content or omitted from this projection. This checklist records the Phase 1 public projection. Every item is either included as approved public content or omitted from this projection.
Evidence refreshed: 2026-09-05 compiled-preview acceptance.
| Area | Public item | Status | | Area | Public item | Status |
| --- | --- | --- | | --- | --- | --- |
| Identity | Luca Pîslaru | approved | | Identity | Luca Pîslaru | approved |
@@ -58,3 +60,24 @@ This checklist records the Phase 1 public projection. Every item is either inclu
| Assets | Exact public project and social asset records | approved | | Assets | Exact public project and social asset records | approved |
| Assets | Unapproved or rights-unconfirmed media | omit | | Assets | Unapproved or rights-unconfirmed media | omit |
| Assets | Toolkit asset references | omit | | Assets | Toolkit asset references | omit |
## 2026-09-05 acceptance evidence
- The compiled page contains exactly eight locked sections in the approved
order and keeps the identity wording “System Administrator & Full-Stack
Developer” unchanged.
- The evidence hierarchy gives systems and software equal primary weight:
Nextcloud migration/recovery is the main operations proof, while the private
medication tracker and its three approved screenshots are the main developer
proof.
- Trupa lui Răzuș remains accurately labeled as a collaborator role. Footy
Tracker states collaboration, Luca's contribution, measured detector
results, and limitations while its rights-unconfirmed frame remains omitted.
Opinion Dynamics remains a supporting project.
- The public asset manifest, prepared publication tree, content references, and
compiled output close exactly at 15 records/files. Metadata, barcode/QR,
binary denylist, and image-text privacy checks passed without exposing the
private inputs used by those checks.
- Page title/description, canonical and social metadata, `rel="me"` profile
links, and both email actions were verified. No downloadable CV or other
unapproved document is published.

View File

@@ -1,6 +1,8 @@
# Evidence-first audience validation # Evidence-first audience validation
Status: **PENDING — no independent reviewer session has been run.** Status: **PENDING — the 2026-09-05 compiled-preview acceptance review passed its
single-reviewer five-second identity check, but no independent three-person
session has been run.**
This is a release checkpoint, not an automated substitute for people. It must use at least three independent reviewers representing hiring-screening and technical-interview perspectives. Reviewers use Static or reduced motion first so the information hierarchy is judged without relying on the scene. This is a release checkpoint, not an automated substitute for people. It must use at least three independent reviewers representing hiring-screening and technical-interview perspectives. Reviewers use Static or reduced motion first so the information hierarchy is judged without relying on the scene.
@@ -29,6 +31,22 @@ This is a release checkpoint, not an automated substitute for people. It must us
Any threshold failure requires content or hierarchy revision. It is not a reason to add visual effects. Any threshold failure requires content or hierarchy revision. It is not a reason to add visual effects.
## 2026-09-05 acceptance observation
One uncoached compiled-preview review was performed at desktop, 320×568,
200%-zoom-equivalent, Static, reduced-motion, keyboard-only, no-JavaScript, and
print-relevant states. At the initial view, the reviewer could identify Luca
Pîslaru, the equal “System Administrator & Full-Stack Developer” positioning,
and the email action. The first scan also exposed Nextcloud migration/recovery
as the principal operations proof and the private medication tracker as the
principal developer proof. The evidence hierarchy remained readable over the
night-drive scene, and the final Contact section again presented email as the
dominant action.
This observation is technical release evidence only. It is one review, not
three independent hiring/technical participants, so it does not satisfy or
replace the threshold below.
## Evidence form ## Evidence form
| Reviewer | Perspective | Mode/browser/viewport | 30 s identity/role/contact | 60 s systems proof | 60 s software proof | Professional/readable (1–5) | Balance (1–5) | Notes | | Reviewer | Perspective | Mode/browser/viewport | 30 s identity/role/contact | 60 s systems proof | 60 s software proof | Professional/readable (1–5) | Balance (1–5) | Notes |

View File

@@ -1,6 +1,6 @@
# Portfolio visual QA # Portfolio visual QA
Status date: 2026-09-03 Status date: 2026-09-05
## Automated capture contract ## Automated capture contract
@@ -28,7 +28,8 @@ Each default viewport asserts:
- dark professional composition with restrained chromatic accent coverage; - dark professional composition with restrained chromatic accent coverage;
- no panel background imagery, filters, glowing text, or content scanlines; - no panel background imagery, filters, glowing text, or content scanlines;
- intentional widths for each desktop layout family, including 68% diagram/toolkit corridors and a 46% destination capped at 42rem, plus readable mobile single-column widths; - intentional widths for each desktop layout family, including 68% diagram/toolkit corridors and a 46% destination capped at 42rem, plus readable mobile single-column widths;
- zero public project image/video elements while the approval-bound manifest is empty. - only approval-bound project image elements, with authored captions and text
alternatives; no project video is published in the current manifest.
Static receives a two-capture perceptual-stability assertion. Contact arrival must resolve the Contact heading, route HUD, `ARRIVED` state, identity, and visible email action together. Static receives a two-capture perceptual-stability assertion. Contact arrival must resolve the Contact heading, route HUD, `ARRIVED` state, identity, and visible email action together.
@@ -53,6 +54,35 @@ npm run test:browser -- tests/browser/visual-regression.spec.ts
The final 2026-09-02 complete browser run passed 167 checks with 43 deliberate project/capability skips. Two desktop heading-focus geometry checks reached the correct target but timed out under the four-worker run; both files then passed 9/9 unchanged with one worker, including the two affected checks. The 16 visual checks ran once in the available current Chromium project; the duplicate mobile-project visual cases were skipped intentionally. The final 2026-09-02 complete browser run passed 167 checks with 43 deliberate project/capability skips. Two desktop heading-focus geometry checks reached the correct target but timed out under the four-worker run; both files then passed 9/9 unchanged with one worker, including the two affected checks. The 16 visual checks ran once in the available current Chromium project; the duplicate mobile-project visual cases were skipped intentionally.
## Content, SEO, and media acceptance — 2026-09-05
The final focused desktop/mobile Chromium matrix passed 94 checks with 26
intentional project/capability skips and no failures. It covered semantics,
keyboard operation, no-JavaScript output, reduced motion, forced colors,
reflow, responsive layout, approved-media policy and failure behavior, and the
visual-regression oracle. The compiled preview retained all eight locked
sections in order.
One broad compiled-preview review covered 1440×900 desktop, 320×568 mobile,
200%-zoom-equivalent layout, Static, reduced motion, keyboard-only,
no-JavaScript, and print-relevant views. The opening view communicated Luca's
name and equal systems/software role immediately. Infrastructure preserved a
readable request-flow diagram and made the Nextcloud migration the primary
operations proof. The private medication tracker remained the primary
developer visual through its three approved screenshots and captions. Footy
Tracker clearly described collaboration, Luca's contribution, measured
results, and limitations without publishing the rights-unconfirmed broadcast
frame. Opinion Dynamics remained a supporting project with two explained
charts and an exact-values table. Contact kept email as the dominant action.
No high-impact visual or content defect was found. On the shortest 320×568 and
200%-zoom-equivalent opening views, the fixed drive controls occupy the lower
viewport edge and can sit beside the end of the opening action row. The row and
all following content remain scroll-reachable, keyboard-reachable, and clear
of focus obscuration; the reflow and target-geometry gates passed. This is
recorded as a non-blocking compact-height tradeoff rather than a reason for a
preference-driven layout iteration.
The compact 320×568 capture initially revealed that the fixed drive controls occupied 43.5% of the viewport and obscured the opening content. The mobile-only control grid reduced that surface to 24.0%; a regression guard now caps it at 34%. After the trace-driven fixed section navigation landed, the captures exposed the decorative HUD intersecting the navigation at phone widths and the controls at 768×1024. A shared exact navigation-height variable now keeps the fixed navigation and visible compact HUD edge-adjacent, reserves their space in the header, and leaves the controls independent. The final measured bounds were 0–93px navigation and 93–125px HUD at 320×568, and 0–45px navigation and 45–77px HUD at 768×1024. Fixed-navigation focus now uses an inward standards outline so the indicator remains visible inside the viewport. Passive-section coverage now positions the target safely beyond the actual 35% activation line rather than relying on a relative `offsetTop` or exact fractional equality. The compact 320×568 capture initially revealed that the fixed drive controls occupied 43.5% of the viewport and obscured the opening content. The mobile-only control grid reduced that surface to 24.0%; a regression guard now caps it at 34%. After the trace-driven fixed section navigation landed, the captures exposed the decorative HUD intersecting the navigation at phone widths and the controls at 768×1024. A shared exact navigation-height variable now keeps the fixed navigation and visible compact HUD edge-adjacent, reserves their space in the header, and leaves the controls independent. The final measured bounds were 0–93px navigation and 93–125px HUD at 320×568, and 0–45px navigation and 45–77px HUD at 768×1024. Fixed-navigation focus now uses an inward standards outline so the indicator remains visible inside the viewport. Passive-section coverage now positions the target safely beyond the actual 35% activation line rather than relying on a relative `offsetTop` or exact fractional equality.
A one-sampled-pixel accent floor was relaxed from 0.001 to 0.0005 after the capture remained visibly intentional and the original value missed by only 0.00002; the dark and maximum-accent limits remain unchanged. A one-sampled-pixel accent floor was relaxed from 0.001 to 0.0005 after the capture remained visibly intentional and the original value missed by only 0.00002; the dark and maximum-accent limits remain unchanged.
@@ -185,7 +215,9 @@ Tall navigator signs had also retained the 390px phone pose throughout the entir
- [x] The infrastructure flow exposes a visible legend and a complete text equivalent. - [x] The infrastructure flow exposes a visible legend and a complete text equivalent.
- [x] The GPU budget accounts for composer and bloom render targets without changing ownership or disposal. - [x] The GPU budget accounts for composer and bloom render targets without changing ownership or disposal.
- [x] Contact remains a clear destination with email as the primary action. - [x] Contact remains a clear destination with email as the primary action.
- [x] No unapproved project derivative is published; the manifest remains empty. - [x] Only approved project/social derivatives are published; the manifest and
compiled asset closure match exactly, and rights-unconfirmed media remains
omitted.
The checked items above describe code/invariant inspection, not unsupported human audience approval. The checked items above describe code/invariant inspection, not unsupported human audience approval.
@@ -196,7 +228,8 @@ The checked items above describe code/invariant inspection, not unsupported huma
- [ ] Repeat the named current/previous-stable browser matrix available to release CI. - [ ] Repeat the named current/previous-stable browser matrix available to release CI.
- [ ] Inspect portrait and landscape on the physical iPhone 13 and Pixel 6, including browser chrome and safe areas. - [ ] Inspect portrait and landscape on the physical iPhone 13 and Pixel 6, including browser chrome and safe areas.
- [ ] Execute NVDA+Firefox and VoiceOver+Safari scripts recorded in the accessibility documents. - [ ] Execute NVDA+Firefox and VoiceOver+Safari scripts recorded in the accessibility documents.
- [ ] Bind and inspect final project derivatives only after Luca approves exact hashes and confirms rights. - [x] Bind and inspect the approved project/social derivatives against their
exact manifest records, captions, and text alternatives.
- [ ] Complete the three-person audience record in `docs/reviews/audience-validation.md`. - [ ] Complete the three-person audience record in `docs/reviews/audience-validation.md`.
No unavailable platform or human checkpoint is silently converted into a pass. No unavailable platform or human checkpoint is silently converted into a pass.