Website Audit

Accessibility and sustainability status for HAAM, based on current implementation and the latest build-time asset inventory.

Last updated: July 11, 2026

Accessibility Snapshot

Coverage includes keyboard use, semantics, announcements, language metadata, and motion preferences.

Document language and reading direction

Pass

The root layout sets <html lang> and dir from the active locale.

Skip link for keyboard users

Pass

A visible-on-focus skip link jumps directly to #main-content.

Menu keyboard support

Pass

The menu supports Escape to close, focus-safe controls, and ARIA state attributes.

Screen reader route updates

Pass

A polite aria-live region announces route changes after navigation.

Control labeling

Pass

Theme switch, language switch, and primary menu controls expose ARIA labels.

Reduced motion handling

Pass

Key animations have prefers-reduced-motion fallbacks.

Automated accessibility CI checks

Gap

No automated axe/lighthouse pipeline is configured yet.

Sustainability Snapshot

Focuses on transfer weight, route architecture, and performance governance.

Static-first delivery

Pass

Most content routes are static and served through Next.js build outputs.

Route code-splitting

Pass

App Router serves route-level bundles to avoid loading all JS upfront.

Multilingual reuse

Pass

The same route structure is reused across locale prefixes.

Large media footprint

Gap

A few large files in public/ materially increase transfer and storage weight.

Server function size budget

Pass

Production builds fail when a Next.js server trace exceeds the deployment budget.

Public Asset Inventory

Generated from the repository's public/ directory during the latest production build.

Files

348

Total Size

260 MB

Supported Locales

14

File Types

  • .png95
  • .svg58
  • .webp52
  • .jpg50
  • .js31
  • .json20
  • .mp410
  • .woff28
  • .html5
  • .gif5
  • .txt4
  • .css3
  • .sketch2
  • .xml1
  • .b641
  • .ico1
  • .pdf1
  • .gltf1

Largest Files

  • /haam-portfolio.pdf

    54.3 MB

  • /blog/wordcamp-asia-2024-taipei/challenge-yourself.mp4

    19.3 MB

  • /blog/wordcamp-asia-2024-taipei/cookie-state.mp4

    19.2 MB

  • /blog/ai-for-good-summit-2019/mariana-lin-ai-speech-responses.mp4

    12.2 MB

  • /hackathons/ethglobal-bangkok-2024/bangkok-after-hours.mp4

    8.46 MB

  • /projects/tallinn-biennial/screenshot-1.png

    7.37 MB

  • /ai-short-film/a-memory-from-tomorrow.mp4

    7.36 MB

  • /blog/seoul-zk-layer/eth-seoul-panel-clip.mp4

    5.02 MB

Help improve this website?

Optional Google Analytics and Microsoft Clarity measure content performance and usability. They load only if you allow them. Form values, email addresses, and chat messages are never included in analytics events.