Diretrizes de codificação para suporte a acessibilidade
Aqui estão algumas coisas que você pode fazer em seu código para fazer seu programa funcionar o melhor possível com tecnologias assistivas. (Você pode encontrar uma lista de coisas para considerar ao projetar sua GUI na seção Diretrizes de interface de usuário para suporte a acessibilidade afrente do seu documento):
-
Para componentes que não exibem um texto curto (tal como um botão gráfico), especifique um nome para ele com atk_object_set_name(). Você pode se interessar em fazer isso para botões com apenas imagens, painéis que fornecem agrupamentos lógicos, áreas de texto e por aí vai.
-
Se você não conseguir fornecer uma dica de ferramenta para um componente, use atk_object_set_description() para fornecer uma descrição que tecnologias assistivas possam fornecer ao usuário. Por exemplo, para fornecer uma descrição de acessibilidade para um botão de fechar, com rótulo :
Example 1-1 Fornecendo uma descrição de acessibilidade para um GtkButton{ AtkObject *obj; obj = gtk_widget_get_accessible(button); atk_object_set_description(obj,_("Closes the window")); }
-
Use atk_image_set_description() para fornecer uma descrição para todas as imagens e ícones em seu programa.
-
Se vários componentes formam um grupo lógico, tente colocá-los em um contêiner.
-
Quando você tiver um rótulo que descreve outro componente, use atk_relation_set_add_relation() de forma que as tecnologias assistivas possam localizar o componente com o qual o rótulo está associado. (Se você associar o rótulo com o componente usando gtk_label_set_mnemonic_widget(), a relação ATK_RELATION_LABEL_FOR é gerada automaticamente, então o seguinte código não mais seria necessário):
Example 1-2 Relacionando um GtkLabel a um GtkWidget{ GtkWidget *widget; GtkLabel *label; AtkObject *atk_widget, *atk_label; AtkRelationSet *relation_set; AtkRelation *relation; AtkObject *targets[1]; atk_widget = gtk_widget_get_accessible(widget); atk_label = gtk_widget_get_accessible (GTK_WIDGET(label)); relation_set = atk_object_ref_relation_set (atk_label); targets[0] = atk_widget; relation = atk_relation_new(targets,1, ATK_RELATION_LABEL_FOR); atk_relation_set_add(relation_set,relation); g_object_unref(G_OBJECT(relation)); }
-
Se você criou um widget personalizado, certifique-se de que ele ofereça suporte a acessibilidade. Componentes personalizados que são descendentes de outros widgets GTK devem sobrescrever as informações de acessibilidade conformidade necessário. Para mais informações, veja Criando componentes acessíveis personalizados.
-
Não quebre o que você consegue de graça! Se sua GUI tiver um contêiner inacessível, quaisquer componentes dentro daquele contêiner podem ficar inacessível.