Hur tillgänglighet fungerar i GNOME
Tillgänglighetsverktygslådan ATK (Accessibility Toolkit) beskriver en uppsättning gränssnitt som måste implementeras av grafiska användargränssnittskomponenter för att göra dem tillgängliga. Gränssnitten är oberoende av verktygslåda - implementationer kan skrivas för valfri komponentuppsättning, så som GTK, Motif eller Qt.
The implementation for the GTK widgets is done via the GtkAccessible class. It is the base class for accessible implementations for GtkWidget subclasses. It is a thin wrapper around AtkObject, which adds facilities for associating a widget with its accessible object. Those parts of your application that use standard GTK widgets will have a basic level of accessibility, without you having to modify your application at all.
De flesta hjälpmedelsteknologier som körs på andra skrivbord har historiskt funnit det nödvändigt att bibehålla en komplex modell vid sidan om skärmen av skrivbordsprogrammen, baserat på tjuvlyssnande på händelser i operativsystemet, användning av funktioner och API:er som inte har stöd i operativsystem och program, och andra tekniker som är ytterst oporterbara. Detta har gjort stöd för hjälpmedelsteknologier något ”sköra” samt högst beroende på operativsystem och program, till och med beroende på programversion. I kontrast till detta tillhandahålls på GNOME-skrivbordet all information som hjälpmedelsteknologier behöver av de körande programmen, via GNOME:s tillgänglighetsramverk, till ett verktygslådeoberoende tjänsteleverantörsgränssnitt (Service Provider Interface, SPI). SPI tillhandahåller ett sätt för UNIX-baserade hjälpmedelsteknologier, så som skärmläsare och skärmförstorare, att erhålla tillgänglighetsinformation från körande program via ett konsekvent, stabilt API, och kan eliminera behovet av en modell vid sidan om skärmen i många fall. Tillgänglighetsstöd för program är ”inbyggt” för programverktygslådor via verktygslådelämpliga API:er (till exempel, ATK för de flesta inhemska C-program och Java-tillgänglighets-API:t för Java-program), och exporteras till det allmänna ”AT-SPI”-gränssnittet via den relevanta ”bryggan” (se diagram nedan).
GNOME:s inbyggda tillgänglighetsstöd innebär att program som skapats med GNOME:s standardkomponenter får stöd för hjälpmedelsteknologier ”gratis”, under förutsättning att komponenterna inte används på ovanliga sätt som strider mot detta inbyggda stöd.
En gtk+/GNOME-komponent är tillgänglig om dess användning följer de allmänna tillgänglighetsriktlinjerna i resten av detta dokument, och implementerar de ATK-gränssnitt som är lämpliga för dess roll i användargränssnittet. ATK-implementationer tillhandahålls för ”standard”-komponenterna i GNOME-verktygslådan (d.v.s. gtk+- och GNOME-komponenter som inte är föråldrade), och i många fall kommer även nya komponenter som härletts trivialt från befintliga GTK+- eller GNOME-komponenter att ärva lämpligt tillgänglighetsstöd.
Även om GNOME:s inbyggda stöd för tillgänglighet tillhandahåller betydande funktionalitet utan några tillgänglighetsspecifika kodändringar från programmets sida, så kan program ofta förbättra standardbeskrivningarna som tillhandahålls för vissa av komponenterna, och skräddarsy dem efter komponentens specifika syfte i ditt program, via enkla anrop till ATK-metoder i programmet. Till exempel bör program för det mesta lägga till eller ändra textbeskrivningarna för dessa komponenter med lämpligt ATK-funktionsanrop, så att en hjälpmedelsteknologi kan beskriva deras syfte eller tillstånd för användaren. Se Kodriktlinjer för att stödja tillgänglighet för mer information.
Om ditt program använder anpassade komponenter kan du behöva utföra lite arbete för att exponera dessa komponenters egenskaper för hjälpmedelsteknologier. Se Göra anpassade komponenter tillgängliga och Exempel som använder tillgänglighets-API:t för mer information.
For additional, in-depth information regarding GTK/GTK+, see the GTK+ Reference Manual, the outdated GTK+ 2.0 Tutorial and the official GTK+ FAQ.