FlashDOM: Interacting with Flash Content from the Document Object Model
Kyle I. Murray · 2010 · Proceedings of the 12th International ACM SIGACCESS Conference on Computers and Accessibility (ASSETS 2010) · doi:10.1145/1878803.1878887
Summary
This paper presents FlashDOM, a system that exposes Adobe Flash content to assistive technologies by translating Flash's internal structure and interactive elements into standard HTML Document Object Model (DOM) elements. The core problem addressed is that Flash Player's closed-source nature meant assistive technologies could only access Flash content through the limited accessibility hooks Adobe chose to include — and in practice, Flash content remained largely inaccessible to screen readers. FlashDOM was built into WebAnywhere, a web-based screen reader. When a user visits a page containing Flash content, WebAnywhere's web proxy intercepts the Flash file and returns a wrapper that loads the original content alongside additional extraction code. This wrapper explores the Flash movie's structure and transmits it to the host page as DOM elements — text, input fields, buttons, and structured lists — that assistive technologies already know how to read. Critically, the interaction is bidirectional: because Flash Player's event model mirrors the DOM event model, keyboard input, mouse clicks, and link activations pass back and forth between the generated HTML structure and the Flash plugin, so typing in an HTML text field is immediately reflected in the Flash movie and vice versa. A bytecode analyzer parses the SWF file and its ActionScript bytecode, rewriting URL requests to route through WebAnywhere's proxy so that Flash content relying on relative URLs continues to function in the proxied environment.
Key findings
FlashDOM demonstrates a viable architectural approach to bridging the gap between proprietary web plugins and the accessible DOM. The system successfully extracts text, input fields, buttons, and structured lists from Flash content and makes them available as standard DOM elements that screen readers can navigate. The bidirectional event passing enables genuine interactivity, not just read-only access. However, the implementation had significant practical limitations: streaming video and web socket communications were not supported, legacy ActionScript written for Flash Player versions before 9 caused instability, and the enormous variety of Flash content on the web meant the bytecode analyzer could not reliably handle all cases. These limitations prevented formal user testing in the first iteration. The author proposed that a standalone browser extension (rather than WebAnywhere integration) would make the approach more broadly useful and reduce dependency on the proxy architecture.
Relevance
While Adobe Flash is now defunct (end-of-life December 2020), FlashDOM's significance lies in its general approach rather than its specific target. The paper articulates a recurring pattern in web accessibility: assistive technologies chronically lag behind new web technologies because they must reverse-engineer or wait for accessibility hooks in each new platform. FlashDOM's strategy — intercepting proprietary content and reflecting it as standard DOM elements — is a template that remains relevant as new embedded content types and frameworks emerge. The work also illustrates the fundamental tension between closed platforms and accessibility: when technology creators do not build in adequate accessibility support and do not open their source code, third parties face enormous complexity trying to bridge the gap. For practitioners, this is a historical case study in why open standards and native accessibility APIs matter, and why relying on proprietary plugins for critical web content creates systemic accessibility barriers.
Tags: screen readers · Adobe Flash · Document Object Model · web accessibility · assistive technology · WebAnywhere · browser extension · ActionScript