Terminal View Audit
Audit report for the Islandflow terminal view, formatted for handoff and review. This preserves the
full findings set: scorecard, anti-pattern verdict, executive summary, detailed issues, systemic
patterns, positive findings, and recommended follow-up commands.
Overall Score: 11/20
Rating Band: Acceptable
Severity Mix: P0 0, P1 5, P2 3, P3 1
Generated: 2026-05-14 04:32
The terminal does not read as generic AI-generated UI overall. It has a coherent
instrument-panel identity, consistent density, and restrained accent use. The biggest problems are
implementation quality issues: invalid nested interactive controls, inaccessible drawer behavior,
weak focus treatment, mobile layouts that depend on horizontal scrolling, token drift, and repeated
banned side-stripe accents.
Detailed Findings By Severity
[P1] Nested Interactive Controls Inside Clickable Row
Location: apps/web/app/terminal.tsx:7118-7135, apps/web/app/terminal.tsx:7155-7179
Category: Accessibility
Impact: Decorated option rows render as outer <button> elements containing inner contract-focus <button> elements. This is invalid HTML and can create inconsistent tab order, click handling, and screen-reader output.
WCAG/Standard: WCAG 4.1.2 Name, Role, Value; HTML interactive content nesting rules
Recommendation: Split row selection and contract focus into non-nested controls. Use a non-button row container with one explicit action button, or keep the row as the only button and turn inner controls into non-interactive text.
Suggested command: $impeccable harden terminal view
[P1] Drawer Panels Are Visually Drawers, Not Accessible Dialogs
Location: apps/web/app/terminal.tsx:4524-4629, 4639-4737, 4747-4841, 4850-4952, close handling at 5070-5102
Category: Accessibility
Impact: The drawers close on outside click and Escape, but they lack role="dialog", aria-modal, focus entry, focus return, and trap behavior. Keyboard users can tab behind the drawer and lose context.
WCAG/Standard: WCAG 2.1.1 Keyboard, 2.4.3 Focus Order, 4.1.2 Name, Role, Value
Recommendation: Promote drawers to true modal dialogs with labelled titles, initial focus, focus containment, inert background, and focus restoration on close.
Suggested command: $impeccable harden terminal view
[P1] Focus Indicators Are Suppressed In Multiple Core Controls
Location: apps/web/app/globals.css:325-327, 413-415, 1054-1058, 1213-1218
Category: Accessibility
Impact: Several controls explicitly remove the browser outline. Some surfaces get only a subtle background shift, which is weaker than a reliable visible focus ring, especially in dense data views.
WCAG/Standard: WCAG 2.4.7 Focus Visible
Recommendation: Restore strong :focus-visible treatment on inputs, row buttons, and inline instrument actions using a consistent high-contrast ring or border treatment.
Suggested command: $impeccable harden terminal view
[P1] ARIA Table Semantics Are Incomplete
Location: apps/web/app/terminal.tsx:7061-7075, 7251-7259, 7348-7359, 7496-7505, 7609-7616, 7732-7739
Category: Accessibility
Impact: The app uses role="table" and role="row" but not full table semantics such as rowgroup, columnheader, and cell roles. Screen readers will get a weaker structural model than a real table or fully formed ARIA grid.
WCAG/Standard: WCAG 1.3.1 Info and Relationships
Recommendation: Prefer semantic <table> markup where possible, or complete the ARIA table structure consistently.
Suggested command: $impeccable harden terminal view
[P1] Narrow-Screen Experience Depends On Oversized Horizontal Tables
Location: apps/web/app/globals.css:967-1009, 1116-1144, 1645-1714
Category: Responsive Design
Impact: Major views keep min-width values like 1280px, 1260px, 900px, and 820px. The mobile fallback is horizontal scroll rather than structural adaptation, which increases cognitive load and makes comparison harder on phones and small tablets.
WCAG/Standard: Responsive design best practice
Recommendation: Define compact column sets, progressive disclosure, or cardless stacked row summaries under mobile breakpoints instead of preserving full desktop schema.
Suggested command: $impeccable adapt terminal view
[P2] Touch Targets Are Below Recommended Minimum In Key Controls
Location: apps/web/app/globals.css:255, 330-347, 365-379, 461-468
Category: Responsive Design
Impact: Controls and chips commonly bottom out around 32px height. That is workable on desktop, but it is tight for touch use and increases mis-taps on mobile.
WCAG/Standard: WCAG 2.5.5 Target Size (AAA), platform mobile guidance
Recommendation: Raise interactive height to at least 40px, ideally 44px, for topbar controls, focus chips, and filter triggers under touch breakpoints.
Suggested command: $impeccable adapt terminal view
[P2] Token Discipline Is Partial, Not Consistent
Location: apps/web/app/globals.css:41, 306, 321, 362, 375, 479, 502, 565, 616, 763, 1452-1470
Category: Theming
Impact: The file starts with a clear token layer, but many later rules bypass it with hard-coded hex values. That makes palette evolution and future theme work harder.
WCAG/Standard: Theming and system quality
Recommendation: Replace one-off literals with named variables, especially amber text variants, chart surface background, and severity-strip foreground colors.
Suggested command: $impeccable polish terminal view
[P2] Undefined CSS Variables Create Silent Theming Bugs
Location: apps/web/app/globals.css:398, 1186
Category: Theming
Impact: var(--text-muted) and var(--muted) are referenced but not defined in :root. Those declarations will fail and fall back to inherited color, which makes the result fragile and inconsistent.
WCAG/Standard: CSS correctness
Recommendation: Replace them with existing tokens such as --text-dim or define the missing variables explicitly.
Suggested command: $impeccable harden terminal view
[P2] Blur-Heavy Chrome Is Overused For Product UI
Location: apps/web/app/globals.css:174-176, 518-525, 1504-1506
Category: Performance / Anti-Pattern
Impact: backdrop-filter: blur(12px) and blur(18px) on persistent UI surfaces add cost and push the product UI slightly toward decorative glass treatment, which the design rules explicitly warn against as a default.
WCAG/Standard: Performance and product-design guidance
Recommendation: Keep blur only where separation is essential, or replace it with tonal contrast and border treatment.
Suggested command: $impeccable quieter terminal view
[P3] Side-Stripe Row Accents Are Repeated Across Tables
Location: apps/web/app/globals.css:1092-1114, 1221-1224
Category: Anti-Pattern
Impact: The interface repeatedly uses border-left: 3px to communicate severity, direction, and classifier state. That is one of the skill's explicit banned patterns and makes rows feel more template-like than intentional.
WCAG/Standard: Design-system rule
Recommendation: Move semantic emphasis into full-row tinting, chips, iconography, or stronger text hierarchy instead of colored side rails.
Suggested command: $impeccable polish terminal view