> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase06-session06-mobile-cockpit-and-accessibility-hardening/tasks.md).

# Task Checklist

**Session ID**: `phase06-session06-mobile-cockpit-and-accessibility-hardening` **Total Tasks**: 22 **Estimated Duration**: 3-4 hours **Created**: 2026-05-30

***

## Legend

* `[x]` = Completed
* `[ ]` = Pending
* `[P]` = Parallelizable (can run with other \[P] tasks)
* `[SNNMM]` = Session reference (NN=phase number, MM=session number)
* `TNNN` = Task ID

***

## Progress Summary

| Category       | Total  | Done   | Remaining |
| -------------- | ------ | ------ | --------- |
| Setup          | 3      | 3      | 0         |
| Foundation     | 5      | 5      | 0         |
| Implementation | 10     | 10     | 0         |
| Testing        | 4      | 4      | 0         |
| **Total**      | **22** | **22** | **0**     |

***

## Setup (3 tasks)

Initial context verification and evidence setup.

### apps/web

* [x] T001 \[S0606] Review Phase 06 mobile checklist, routing requirements P06-R024 through P06-R029, UX PRD acceptance criteria, Session 04 War Room output, Session 05 isolation output, and current web README; record scoped mobile/accessibility assumptions (`.spec_system/specs/phase06-session06-mobile-cockpit-and-accessibility-hardening/implementation-notes.md`)
* [x] T002 \[S0606] Run focused baseline web shell, battlefield, War Room, orchestration, and app Playwright checks; record current evidence paths and no-hosted-service assumptions (`.spec_system/specs/phase06-session06-mobile-cockpit-and-accessibility-hardening/implementation-notes.md`)
* [x] T003 \[S0606] Inventory current mobile scroll, focus, reduced-motion, and no-overlap browser guard coverage before changes (`tests/e2e/support/browserGuards.ts`)

***

## Foundation (5 tasks)

Core responsive layout, semantics, and reduced-motion foundations.

### apps/web

* [x] T004 \[S0606] Stabilize cockpit grid and bottom-rail scroll behavior for supported mobile widths with explicit loading, empty, error, offline, and unavailable states (`apps/web/src/components/Layout.tsx`)
* [x] T005 \[S0606] Refine global focus, touch-target, text-fit, scroll-region, battlefield, and reduced-motion utilities with stable dimensions and no viewport-width font scaling (`apps/web/src/index.css`)
* [x] T006 \[S0606] Harden shell control metadata and local-only surface copy for accessible names, visible focus, wrapped labels, and no hidden primary controls (`apps/web/src/components/TitleBar.tsx`)
* [x] T007 \[S0606] Harden battlefield board and remote marker foundations with nonzero 16:9 sizing, edge-safe labels, accessible button names, reduced-motion static state, and no local selection mutation (`apps/web/src/components/battlefield/Battlefield.tsx`, `apps/web/src/components/battlefield/RemoteParticipantOverlay.tsx`)
* [x] T008 \[S0606] \[P] Create focused mobile accessibility component tests for shell reachability, dialog semantics, focus paths, reduced-motion affordances, and local-first boundary copy (`apps/web/tests/MobileAccessibility.test.tsx`)

***

## Implementation (10 tasks)

Main mobile cockpit and accessibility hardening.

### apps/web

* [x] T009 \[S0606] Harden mission list and filters for mobile text fit, keyboard operation, visible empty/error states, bounded scrolling, and deterministic ordering (`apps/web/src/components/MissionLog.tsx`)
* [x] T010 \[S0606] Harden hero roster and cards for long names, state badges, selected state, touch targets, focus-visible treatment, and accessible labels (`apps/web/src/components/HeroRoster.tsx`, `apps/web/src/components/HeroCard.tsx`)
* [x] T011 \[S0606] Harden hero and mission detail drawers with dialog labels, focus return, long prompt wrapping, state revalidation on re-entry, and Escape/close behavior (`apps/web/src/components/HeroDetailDrawer.tsx`, `apps/web/src/components/MissionDetailDrawer.tsx`)
* [x] T012 \[S0606] Harden settings, replay, and command overlays with accessible names, focus management, disabled/revoked handling, reduced-motion equivalents, and state reset or revalidation on re-entry (`apps/web/src/components/SettingsDrawer.tsx`, `apps/web/src/components/ReplayPanel.tsx`, `apps/web/src/components/CommandPalette.tsx`)
* [x] T013 \[S0606] Harden local orchestration mobile layout and controls with bounded filters, unavailable execution copy, duplicate-trigger prevention while in-flight, accessible labels, and explicit error mapping (`apps/web/src/components/OrchestrationPanel.tsx`)
* [x] T014 \[S0606] Harden War Room panel room hints, diagnostics, active-room controls, room notices, remote-context summaries, and long text with accessible labels, focus support, and duplicate-trigger prevention while in-flight (`apps/web/src/components/WarRoomPanel.tsx`)
* [x] T015 \[S0606] Harden War Room approval and roster rows for long participant names, role/status text equivalents, disabled decision reasons, local participant markers, touch targets, and visible focus (`apps/web/src/components/WarRoomApprovalQueue.tsx`, `apps/web/src/components/WarRoomRoster.tsx`)
* [x] T016 \[S0606] Harden notice, quest, toast, and replay-adjacent feedback regions so loading, offline, local-only, unavailable, and error states stay readable and do not obscure primary controls (`apps/web/src/components/NoticeBoard.tsx`, `apps/web/src/components/QuestBoard.tsx`, `apps/web/src/components/ToastTray.tsx`)
* [x] T017 \[S0606] Extend app desktop/mobile Playwright scenario coverage for cockpit reachability, drawers, focus-visible checks, no-overlap checks, reduced-motion state, local orchestration, War Room long text, and redacted remote context (`tests/e2e/app.e2e.ts`)
* [x] T018 \[S0606] \[P] Update web README Phase 06 mobile/accessibility notes with validated behavior, evidence scope, optional Worker limits, non-execution posture, and non-certification caveats (`apps/web/README_web.md`)

***

## Testing (4 tasks)

Verification and quality assurance.

### apps/web

* [x] T019 \[S0606] \[P] Extend focused component tests for shell, battlefield, drawers, War Room, orchestration, labels, focus, reduced motion, duplicate guards, and no hosted/mobile certification wording (`apps/web/tests/CockpitShell.test.tsx`, `apps/web/tests/Battlefield.test.tsx`, `apps/web/tests/OrchestrationPanel.test.tsx`, `apps/web/tests/WarRoomPanel.test.tsx`, `apps/web/tests/WarRoomBattlefieldOverlay.test.tsx`, `apps/web/tests/MobileAccessibility.test.tsx`)
* [x] T020 \[S0606] \[P] Extend reusable browser guard helpers for mobile overflow, no-overlap, focus-visible, reduced-motion, and privacy-safe diagnostics (`tests/e2e/support/browserGuards.ts`)
* [x] T021 \[S0606] Run focused web Vitest suites, `npm --workspace @factionos/web run typecheck`, and relevant app desktop/mobile Playwright projects; record command results and retained screenshot paths (`.spec_system/specs/phase06-session06-mobile-cockpit-and-accessibility-hardening/implementation-notes.md`)
* [x] T022 \[S0606] Run `git diff --check`, validate ASCII/LF for changed files, and write security, privacy, accessibility, external-transfer, and non-certification review (`.spec_system/specs/phase06-session06-mobile-cockpit-and-accessibility-hardening/security-compliance.md`)

***

## Completion Checklist

Before marking session complete:

* [x] All tasks marked `[x]`
* [x] All tests passing
* [x] All files ASCII-encoded
* [x] implementation-notes.md updated
* [x] Ready for the validate workflow step

***

## Next Steps

Run the validate workflow step to verify session completeness.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase06-session06-mobile-cockpit-and-accessibility-hardening/tasks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
