Flash Standardkonform einbinden

In der XHTML Spezifikation findet man das Object Tag, was vor allem im Internet Explorer Anwendung findet, während dasEmbed Tag , bei Netscape & Co genutzt wird, nicht aber in der Spezifikation auftaucht.

Einen Ausweg fand Drew McLellan - nachzulesen unter Flash Satay: Embedding Flash While Supporting Standards- seine Lösung ermöglicht eine standardkonforme Einbindung von Flashelementen und gleichzeitig die Darstellung alternativer Inhalte bei fehlenden Flashplugin. Eine traumhafte Lösung.

<object type="application/x-shockwave-flash" data="test.swf" width="715" height="215" id="Taler" title="test">
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<div><img src="/ bild.jpg" width="715" height="215" alt="Foto:Beschreibung" /></div> </object>

Traumhafte Lösung - dachte ich.... bis mich jemand darauf aufmerksam machte, dass man in Mozilla & Co jetzt nicht mehr mit der Tabtaste navigieren kann, weil der Focus im Flashmovie hängen bleibt. Gerade im barrierefreien Kontext ein unzumutbares Manko.

Zunächst habe ich versucht innerhalb von Flash selbst, dem Movieclip seinen Focus zu entziehen, indem ich auf das erste Bild der Zeitleiste folgendes Actionskript MovieClip.prototype.tabEnabled = false; legte. Erfolglos.

Anschließend kam Javascript zu Einsatz, eine Behelfsmethode. Ich wollte den Focus, sobald er auf dem Movie liegt, zum nächsten Link springen lassen. Aber auch das funktionierte leider nicht.

Dann stieß ich auf XUL . XUL ist eine auf XML basierende Beschreibungssprache für grafische Benutzeroberflächen. Sie wurde ursprünglich für das Mozilla-Projekt entwickelt, und bietet eine Vielzahl von Styleeigenschaften. Unter anderem auch -moz-user-focus:ignore/normal.

Dies in den Object Tag eingefügt, verhindert innerhalb von Mozilla & Co, dass der Flashmovie überhaupt den focus erhält. Ein weiteres Navigieren mit der Tabtaste wird möglich.

<object type="application/x-shockwave-flash" data=" test.swf" width="715" height="215" id="Taler" style="-moz-user-focus:ignore" title="test"> … … </object>

Problematisch wird diese Lösung aber bei interaktiven Flashanwendungen. Wenn man weiter denkt, wäre vielleicht die Interaktion von Flash und Javascript eine Möglichkeit, Flash auch bei interaktiven Anwendungen standardkonform einzubinden: Sobald der Flashmovie nicht mehr den Focus hat, übergibt man diese Information an Javascript, um damit die Eigenschaft Moz-user-focus wieder auf ignore zu setzen.

Diese Lösung validiert jetzt, auch wenn Opera 6 leider streikt. Das beunruhigt mich aber nicht weiter, denn Opera User sind doch sicher Upgrade-freundlich, oder?!

Kommentare 0

Kommentar schreiben