Technische Dokumentation – Version 1.0


4  Anmerkungen & Workarounds

4.1  XML

Escape Characters
Da einige Zeichen in XML bzw. XSLT reserviert sind (z.B. \t für tabulator und \n für newline) wurde an den betreffenden Stellen in der XML-Datei ein nullbreites Leerzeichen eingefügt, um die Verarbeitung des Kommandos zu verhindern. Dies trifft insbesondere auf einige LATEX-Sequenzen und einige Kürzel der Praat-Notation zu. Das nullbreite Leerzeichen (​) ist in der Ausgabe nicht sichtbar. Es macht sich durch einen zusätzlichen „Leerschritt“ bemerkbar, wenn der Cursor im Eingabefeld über eines der betroffenen Zeichen bewegt wird.
Backslash
Da die XSLT-Vorverarbeitung anführende Backslashs als Initialisierung einer Sequenz behandelt, sind in der Datei IPA.xml an diesen Positionen doppelte Backslashs eingegeben. Diese werden bei der Verarbeitung durch die XSL-Transformation automatisch entfernt.

4.2  XSLT

Bei der Transformation der XML-Datei durch XSLT werden Unicode-Entities direkt übersetzt. Da aus diesem Grund nicht auf die Entity-Referenz zugegriffen werden kann, sind die vierstelligen Kodes in einem weiteren Knoten des Laut-Elements hinterlegt. Für die Ausgabe des vollständigen Unicode-Kodes werden diese Referenzen (z.B. 0294) in einem der Templates weiterverarbeitet und in die richtige Form (z.B. ʔ) überführt.

4.3  Skripte

Der Hinweis beim Versuch nicht existierende oder defekte Audiofiles abzuspielen wird durch einen simplen JavaScript alert ausgegeben. Um zu verhindern, dass der Nutzer bei jedem „Fehlversuch“ den Hinweis mit einem Klick auf den Ok-Button bestätigen muss, ist eine unaufdringlichere Lösung (z.B. in Form eines timergesteuerten Hinweisfeldes mit alertify.js etc.) wünschenswert.

4.4  Benennung der Audiofiles

Die Audiodateien in XIPA sind nach der im entity-Tag hinterlegten vierstelligen hexadezimalen Unicode-Referenz des Zeichens benannt (z.B. 0294.wav für den Glottal Stop). Diese Dateinamenskonvention wurde gewählt, um eine robuste, betriebssystemübergreifende Verarbeitung der Dateien zu ermöglichen.

Theoretisch sind Dateinamen möglich, die dem Unicode-Zeichen entsprechen (z.B. ʔ.wav). Diese Lösung ist jedoch fragil. Sie führt zu Fehlern, insbesondere dann, wenn Dateien zwischen unterschiedlich formatierten Datenträgern kopiert werden sollen oder auf unterschiedlichen Plattformen genutzt werden.

4.5  Web-Audio-API

Der Audio-Context der Web-Audio-API wird direkt zu Beginn des onclickSwitcher Skripts aufgerufen und ist damit für die gesamte Nutzungsdauer des Tools aktiv. In einigen Browsern kann dies zu einer erhöhten Last führen und bei Mobilgeräten zu einer verkürzten Akkulaufzeit führen. Dies trifft auch zu, wenn die Transkriptionsumgebung im Hintergrund ausgeführt wird.

Die Einbindung am Anfang des Skripts war notwendig, da die Web-Audio-API in verschiedenen Browsern unterschiedlich implementiert ist. Die eigentlich korrekte Vorgehensweise – das Öffnen und Schließen des Audio-Kontexts bei An- und Abwählen des Play Sound-Schalters – führte bei einigen Browsern (z.B. Mozilla Firefox) zu einer Fehlermeldung nach dem Abspielen von mehr als 6 Lauten, da der Audio-Kontext nicht – wie erwartet – geschlossen wurde.

Es ist zu erwarten, dass nachfolgende Browser-Versionen die API besser einbetten. Da es sich bei der API um einen Entwurf des W3C handelt, bleiben zukünftige Entwicklungen abzuwarten. Sobald ein Öffnen und Schließen des Audio-Kontexts im Skript browserübergreifend funktioniert, sollte diese Funktion entsprechend abgeändert werden.

4.6  Nutzereingaben

In einigen Browsern bleiben eingegebene Transkriptionen auch bei einem erneuten Laden der Seite erhalten. Um diese Funktion browserübergreifend verfügbar zu machen und einen Verlust von Transkriptionen bei Computerabstürzen etc. zu verhindern, kann entweder ein Cookie beim Nutzer gespeichert werden, das die Inhalte der zuletzt eingegebenen Zeichen im Textfeld enthält. Alternativ ist eine Umsetzung mit HTML5 localStorage ebenfalls denkbar.