Skip to content

πŸ” Multi-Device Docs Testing Report - 2026-04-26Β #28598

Description

@github-actions

Test Summary

  • Triggered by: @pelikhan
  • Workflow run: Β§24956161040
  • Devices targeted: 10 (Mobile Γ—4, Tablet Γ—3, Desktop Γ—3)
  • Test method: HTML structural analysis (curl fallback) β€” Playwright browser was unreachable due to Docker network isolation
  • Test date: 2026-04-26
  • Server: Astro v6.1.8 + Starlight v0.38.3 on port 4321

Results Overview

  • 🟒 Structural/Accessibility checks: Passed (all 4 pages sampled)
  • 🟑 Warnings: 1 (skip link target naming)
  • πŸ”΄ Critical: 0
  • βšͺ Visual/interactive layout tests: Skipped (Playwright network isolation)

Accessibility Findings

All pages consistently showed:

  • βœ… <html lang="en" dir="ltr"> β€” language attribute set
  • βœ… <meta name="viewport" content="width=device-width, initial-scale=1"> β€” responsive viewport configured
  • βœ… Skip link present: <a href="#_top" class="skip-link">Skip to main content</a> targeting <h1 id="_top"> inside <main>
  • βœ… Primary nav labeled: <nav aria-label="Primary navigation">
  • βœ… Sidebar labeled: <nav aria-label="Main"> (doc pages)
  • βœ… Hamburger button has aria-label="Toggle navigation menu" and aria-expanded
  • βœ… Search labeled: aria-label="Search" (pagefind-based)
  • βœ… Video embeds have descriptive aria-label attributes
  • βœ… All images have alt attributes (no bare <img> tags without alt)

🟑 Warning β€” Skip link naming: The skip link href="#_top" maps to the <h1> heading inside <main>. The anchor name _top implies "top of page" but actually skips to content. Functionality is correct, but renaming the anchor to #main-content or #content would follow WCAG 2.4.1 convention more clearly.

Structural Findings (Pages Tested)

Page HTTP <header> <nav> (primary) Sidebar <main> <footer> TOC aside
/gh-aw/ (homepage) 200 βœ… βœ… n/a (landing) βœ… βœ… n/a
/gh-aw/guides/getting-started-mcp/ 200 βœ… βœ… βœ… βœ… βœ… βœ…
/gh-aw/reference/faq/ 200 βœ… βœ… βœ… βœ… βœ… βœ…
/gh-aw/blog/ 200 βœ… βœ… βœ… βœ… βœ… βœ…
View Additional Element Checks

Homepage extras:

  • Tablet hamburger menu: <button class="hamburger-btn" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="tablet-nav-dropdown">
  • Tablet dropdown nav hidden by default: <nav id="tablet-nav-dropdown" aria-label="Primary navigation" hidden>
  • Theme switcher: <starlight-theme-select> with Auto/Dark/Light options
  • OG/Twitter meta: og:image, og:title, twitter:card, twitter:image β€” complete
  • RSS feed: <link href=".../blog/rss.xml" rel="alternate">
  • Favicon SVG: present
  • Custom fonts (Mona Sans) preloaded with rel="preload" + font-display: swap
  • data-has-hero attribute set for landing-page CSS variant

Doc page extras (guides, faq, blog):

  • Left sidebar with full site tree
  • Right sidebar (<aside class="right-sidebar-container">) with in-page TOC
  • Mobile TOC toggle via aria-labelledby="starlight__on-this-page--mobile"
  • Print-hidden sidebars (print:hidden)
View Visual Testing Limitation Details

Why Playwright was unavailable:
The Playwright MCP server runs in a container with --network host, meaning its localhost is the Docker host β€” not the agent container. The agent container's bridge IP (172.30.0.20) was not reachable from the Playwright container, resulting in net::ERR_CONNECTION_REFUSED / TimeoutError on navigation.

What could NOT be verified visually:

  • Horizontal overflow on narrow viewports (≀428px mobile, ≀768px tablet)
  • CSS sidebar collapse at mobile breakpoints
  • Mobile menu toggle animation and z-index stacking
  • Touch target sizes on mobile devices
  • Code block horizontal scroll behavior
  • Image lazy-loading and placeholder rendering
  • Dark/light theme switch visual rendering

Devices planned but untested visually:

  • Mobile: iPhone 12 (390Γ—844), iPhone 12 Pro Max (428Γ—926), Pixel 5 (393Γ—851), Galaxy S21 (360Γ—800)
  • Tablet: iPad (768Γ—1024), iPad Pro 11 (834Γ—1194), iPad Pro 12.9 (1024Γ—1366)
  • Desktop: HD (1366Γ—768), FHD (1920Γ—1080), 4K (2560Γ—1440)

Recommendations

  1. Rename skip link anchor (low priority): Change <h1 id="_top"> to <h1 id="main-content"> and update href="#_top" β†’ href="#main-content" on the skip link. This improves clarity and aligns with WCAG 2.4.1 best practice.

  2. Investigate Playwright connectivity (infrastructure): The AWF Docker network configuration prevents Playwright from reaching the agent container's bridge IP. Future test runs would benefit from a shared network or port-forwarding solution to enable visual screenshot tests.

  3. Add viewport overflow test to CI (enhancement): A simple Node.js script using page.evaluate(() => document.documentElement.scrollWidth > window.innerWidth) at each breakpoint would catch horizontal overflow regressions without requiring Playwright visual diffs.

References:

Generated by Multi-Device Docs Tester Β· ● 679.1K Β· β—·

  • expires on Apr 28, 2026, 12:16 PM UTC

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

cookieIssue Monster Loves Cookies!documentationImprovements or additions to documentationtesting

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions