Frameworks zur softwareentwicklung und die zugänglichkeit der amit erstellten Anwendungen

Aus besondere tipps
Wechseln zu: Navigation, Suche

Dies ist nur ein Entwurf.

Die überschriften und Inhalte sollen Gedankenstützen und Stichpunkte für Ergänzungen sein.

Falls Sie helfen können, Inhalte zu ergänzen, würden wir uns darüber sehr freuen.


Einleitung[Bearbeiten]

Für die Barrierefreiheit einer Anwendung spielen die verwendeten Frameworks eine zentrale Rolle. Falls diese in ihren Steuerelementen keine Zugänglichkeit bereitstellen, ist die gesamte Anwendung damit unzugänglich. Die Verwendung solcher Frameworks ist meistens eine Entscheidung sehr früh im Entwicklungsprozess und ein Wechsel ist oft nur sehr teuer möglich.

Auf dieser Seite sollen Frameworks aufgelistet werden, mit denen Oberflächen von apps und Anwendungen erstellt werden. Dabei wird kompakt angegeben, ob das Framework überhaupt in der Lage ist, zugängliche Anwendungen zu erstellen. Außerdem werden weitere Besonderheiten angegeben.

Die Auflistung soll es Entwicklern, Multiplikatoren etc. ermöglichen, Anwendungen allein auf Basis der verwendeten Komponenten auf eine mögliche Barrierefreiheit zu untersuchen.

Frameworks, die Zugängliche Anwendungen erstellen können, sind die Minimalvoraussetzung für eine barrierefreie Anwendung. Es ist trotzdem möglich, eine Anwendung vollkommen unzugänglich zu gestalten, auch wenn die zu Grunde liegenden Komponenten Barrierefreiheit erlauben.

Andererseits ist die Verwendung von Frameworks mit Potential zur Barrierefreiheit ein Hinweis darauf, das eine nachträgliche barrierefreie Gestaltung einer Anwendung deutlich günstiger als bei einem anderen Framework ist - es müssen "nur" die Empfehlungen des Frameworks umgesetzt werden.

Die hier getroffenen aussagen basieren einerseits auf Erfahrungen und andererseits auf den Dokumentationen der Frameworks selbst.

App-Entwicklung[Bearbeiten]

Objective C für IOS[Bearbeiten]

Apps, die dieses Framework für die Oberfläche verwenden können sehr gut zugänglich sein. Die Barrierefreiheit basiert auf wenige Eigenschaften, die der App-Entwickler setzen muss: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008785

Android[Bearbeiten]

Apps für Android können barrierefrei gestaltet werden. Dabei ist zu beachten, dass oft ältere Android-Versionen auf vielen Geräten im Einsatz sind und das die Oberfläche durch die Provider angepasst wurde. Es ist also ratsam, die Barrierefreiheit auch jenseits der Funktionen der neuesten Android-Version zu prüfen. https://developer.android.com/guide/topics/ui/accessibility/apps.html

Desktopanwendungen[Bearbeiten]

Klassische windows-anwendungen[Bearbeiten]

win32 native Steuerelemente[Bearbeiten]

Anwendungen, die native Win32-Steuerelemente verwenden, können vollkommen barrierefrei gestaltet werden. Oft ergibt sich auch eine gute Tastaturunterstützung, da Windows automatisch eine Tab-Reihenfolge vorgibt.

Microsoft Foundation classes[Bearbeiten]

Anwendungen, die mit diesem recht veralteten Framework erstellt werden, können sehr barrierefrei gestaltet werden. Die zugänglichkeit ist ähnlich von Win32- nativen Steuerelementen. In beiden fällen bedürfen sog. owner-Drawn-Controls eine gesonderte Implementierung für die Zugänglichkeit.

.net-anwendungen[Bearbeiten]

Anwendungen, die das .net-Framework und damit verbundene Oberflächen-Frameworks verwenden können barrierefrei gestaltet werden.

Windows presentation foundation (WPF)[Bearbeiten]

Die Barrierefreiheit basiert hier auf der Schnittstelle UI automation. Das bedeutet, dass nur Screenreader unterstützt werden, die diese Schnittstelle auslesen. https://msdn.microsoft.com/de-de/windows/desktop/gg712258.aspx

GTK[Bearbeiten]

Das GNU Windowing toolkit kann Anwendungen für Linux-Systeme mit guter Barrierefreiheit erstellen. Für Windows-Systeme sind solche Anwendungen allerdings grundsätzlich unzugänglich. Hintergrund ist hier eine fehlende Accessbridge für das GTK, die in Linux implementiert ist, aber nicht unter Windows.

Java[Bearbeiten]

AWT[Bearbeiten]

Reine AWT-Anwendungen können nicht barrierefrei gestaltet werden, da es für diese veraltete Oberflächentechnologie keine sog. Accessbridge gibt.

Swing[Bearbeiten]

Anwendungen, die dieses Framework verwenden, können relativ barrierefrei gestaltet werden. Dabei muss besonders auf eine Implementierung der Tastaturunterstützung geachtet werden, da diese normalerweise nicht ausreichend durch das Framework gesetzt wird. https://docs.oracle.com/javase/tutorial/uiswing/misc/access.html

Eclipse und SWT[Bearbeiten]

Eclipse bzw. SWT-Anwendungen können sehr barrierefrei gestaltet werden. Sie verwenden die nativen Steuerelemente des Betriebssystems. Das bedeutet aber auch, dass selbst erstellte Steuerelemente eine gesonderte Implementierung für Barrierefreiheit benötigen. http://www.eclipse.org/articles/article.php?file=Article-Accessibility/index.html Die Verwendung der Eclipse-Infrastruktur unterstützt dabei die Barrierefreiheit sehr gut, da Eclipse selbst sehr barrierefrei ist. Dazugehören Hotkeys zur navigation zwischen Views und Perspektiven etc.

Es gibt weiterhin ein spezielles Framework, dass bei der Entwicklung von barrierefreien Anwendungen unterstützt: Nämlich das Accessibility Tools Framework http://www.eclipse.org/actf/

QT[Bearbeiten]

QT kann recht barrierefreie Anwendungen erstellen. Screenreader unter Windows müssen allerdings die IAccessible2-Schnittstelle korrekt auslesen und für den Anwender verarbeiten. Auch unter Linux und OS X werden die Standardschnittstellen für Screenreader verwendet. Generell sollte mindestrens QT 5 eingesetzt werden, da dort die Komponenten für Screenreader fest enthalten sind und nicht separat vom ÄEntwickler mit der Anwendung ausgeliefert werden müssen. http://doc.qt.io/qt-5/accessible.html

Webanwendungen[Bearbeiten]

Bootstrap[Bearbeiten]

Das bekannte Framework Bootstrap bietet ein spezielles Accessibilirty-Plugin an, um die Zugänglichkeit zu verbessern. Es muss durch den Entwickler installiert bzw. in die Anwendung eingebaut werden. Auf der hier verlinkten Seite ist eine live demo verlinkt, mit der man die Zugänglichkeit mit und ohne Hilfe des Plugins erproben kann. https://paypal.github.io/bootstrap-accessibility-plugin/

Andere Frameworks[Bearbeiten]

Für weitere Frameworks gibt es Beispiele für zugängliche Widgets: