폴리이엔엠 디지털 미디어 연구

WebAssembly 및 Canvas 기반 고성능 UI의 접근성 사각지대 49

현대의 웹 플랫폼은 단순한 하이퍼텍스트 문서를 소비하는 공간에서 벗어나, 데스크톱 네이티브 애플리케이션에 필적하는 고성능 연산과 복잡한 그래픽 렌더링을 수행하는 거대한 플랫폼으로 진화했습니다. 중심에는 자바스크립트 엔진을 우회하여 네이티브에 가까운 속도로 코드를 실행하는 WebAssembly(Wasm)와 화면 픽셀을 직접 조작하는 Canvas API가 있습니다. 하지만 이러한 렌더링 방식 이면에는 '웹 접근성의 완전한 차단'이라는 치명적인 기술적 부채가 존재합니다. 1

DOM 파이프라인 우회와 접근성 트리의 단절

기존의 브라우저 렌더링은 HTML DOM을 구성할 때 보조 기기(Screen Reader 등)가 읽을 수 있도록 접근성 트리(Accessibility Tree)를 별도로 구축합니다. 그러나 Wasm과 Canvas 기반의 독자적인 UI 렌더링 엔진들은 브라우저가 제공하는 시맨틱 파이프라인과 inert 속성 같은 네이티브 포커스 관리 기능의 혜택을 받을 수 없습니다. 브라우저 입장에서 <canvas> 내부는 어떤 텍스트나 버튼이 있는지 전혀 알 수 없는 '블랙박스'이기 때문입니다. 2

투명 DOM(Fallback DOM) 기법의 한계와 안티패턴

접근성 트리의 단절을 우회하기 위해 산업계에서는 Canvas와 동일하게 겹치는 거대한 투명 병렬 DOM 트리(Parallel DOM Tree)를 구축하는 기법을 사용합니다. 이를 통해 각 위젯의 위치 데이터를 투명 DOM 노드 좌표와 실시간 동기화하여 보조 기기에 노출시킵니다. 3

그러나 물리적인 텍스트 노드 대신 시각적 은닉을 위해 aria-label 속성을 남용하는 등 치명적 안티패턴이 종종 발생합니다. 구글 번역 등 기계 번역기는 속성(Attribute) 값을 번역 대상에서 제외하므로, 다국어 사용자들에게 심각한 정보 차단 장벽을 형성하게 됩니다. 4

주요 WebAssembly UI 프레임워크의 딜레마

AOM(접근성 객체 모델)과 WasmGC의 미래

기형적인 DOM 강제 생성 구조를 극복할 근본적인 방향은 차세대 웹 표준인 Accessibility Object Model(AOM)입니다. AOM이 성숙하면 개발자가 자바스크립트로 운영체제의 접근성 트리에 직접 시맨틱스를 주입할 수 있습니다. 8 여기에 브라우저 네이티브 객체를 직접 참조할 수 있는 WasmGC가 전면 도입된다면 직렬화의 한계를 벗어나 초고속으로 접근성 트리를 갱신함으로써 진정한 차세대 고성능 웹을 실현할 길이 열립니다. 9

결론

성능 때문에 접근성을 무시하는 아키텍처는 더 이상 시대적으로 용인받기 힘듭니다. 2026년 대폭 확장된 WCAG 3.0은 보조 기기 호환성 및 명확한 컴플라이언스를 요구하며 공공 조달 등 글로벌 법적 기준치도 올랐습니다. WebAssembly/Canvas 환경의 프론트엔드 개발 시, 개발팀은 표준의 최전선 기술을 빠르게 차용해야 접근성 부채에서 해방될 수 있을 것입니다. 10

참고 자료

  1. ^ MDN Web Docs. WebAssembly concepts. https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Concepts
  2. ^ MDN Mozilla. Accessibility tree. https://developer.mozilla.org/en-US/docs/Glossary/Accessibility_tree
  3. ^ Kanaru Sato. Painting the Future — Canvas-Based Rendering & Accessibility Today and Tomorrow. Medium. https://medium.com/@i.am.kanaru.sato/painting-the-future-canvas-based-rendering-a11y-today-and-tomorrow-6888ec2a3e5f
  4. ^ 방성훈. 쉐도우 돔 가이드: 캡슐화부터 SSR까지. Polyenm. https://adnect.co.kr/posts/post45.html
  5. ^ Thomas Steiner. Accessibility in Flutter on the Web. Flutter Blog. https://blog.flutter.dev/accessibility-in-flutter-on-the-web-51bfc558b7d3
  6. ^ AccessKit. AccessKit: Accessibility infrastructure for UI toolkits. https://accesskit.dev/
  7. ^ Slint Docs. Platforms: Web. https://docs.slint.dev/latest/docs/slint/guide/platforms/web/
  8. ^ WICG. Accessibility Object Model. GitHub Pages. https://wicg.github.io/aom/spec/
  9. ^ Uno Platform. The State of WebAssembly – 2025 and 2026. https://platform.uno/blog/the-state-of-webassembly-2025-2026/
  10. ^ W3C. Explainer for W3C Accessibility Guidelines (WCAG) 3.0. https://www.w3.org/TR/wcag-3.0-explainer/