접근성 지원 코드 작성 지침

가능한한 보조 기술이 프로그램에서 동작하도록 코드에서 처리할 수 있는 일을 여기에 언급하겠습니다. (이 문서 후반의 접근성 지원 사용자 인터페이스 지침서에서 GUI를 설계할 때 고려해야 할 사항을 찾아보실 수 있습니다):

  • 간단한 문장을 표시하지 않으려는 구성 요소(그래픽 단추의 경우)에 대해서는, atk_object_set_name() 함수로 이름을 지정하십시오. 이미지만 있는 단추, 논리 그룹을 붙일 패널, 텍스트 영역 등에 대해 이런 처리를 하고 싶을 수도 있습니다.

  • 구성요소에 풍선 도움말을 제공할 수 없다면 사용자에게 제공할 수 있는 보조 기술의 설명을 제공하는 대신 atk_object_set_description() 함수를 사용하십시오. 예를 들자면, 닫기 단추에 편의 설명을 제공하는 경우:

    예제 1-1GtkButton에 편의 설명 제공
    {
      AtkObject *obj;
      obj = gtk_widget_get_accessible(button);
      atk_object_set_description(obj,_("Closes the window"));
    }
    
  • 프로그램의 모든 이미지 및 아이콘에 글자 설명을 넣으려면 atk_image_set_description() 함수를 사용하십시오.

  • 여러 구성 요소가 논리 그룹을 형성한다면 컨테이너 하나에 넣으십시오.

  • 다른 구성 요소를 설명하는 레이블을 언제 넣든지, atk_relation_set_add_relation() 함수를 사용하여 어떤 레이블이 구성 요소에 붙었는지 보조 기술에서 확인할 수 있게 하십시오. (gtk_label_set_mnemonic_widget() 함수를 활용하여 구성요소의 레이블을 붙였다면 ATK_RELATION_LABEL_FOR 관계를 자동으로 만드므로 다음 코드는 필요하지 않습니다):

    예제 1-2GtkWidget에 GtkLabel 연동
    {
      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));
    }
    
  • 개별 위젯을 만들 경우, 접근성을 지원하는지 확인하십시오. 다른 GTK 위젯의 파생요소인 개별 구성요소는 필요한 대로 접근성 정보를 물려받아야합니다. 추가 정보는 개별 구성요소 접근성 처리를 살펴보십시오.

  • 자유롭게 가져온 위젯을 깨먹지 마십시오! GUI에서 컨테이너에 접근할 수 없으면 컨테이너의 어떤 구성 요소에도 접근할 수 없습니다.