2011-12-07 5 views
3

이미지 전용이고 프로그래밍 방식으로 완전히 설정된 몇 개의 NSButton이 있습니다. VoiceOver가이 버튼을 읽으면 각 버튼에 대해 "체크되지 않은 체크 박스"라고 표시됩니다. VoiceOver에 읽기 쉽도록 속성을 설정하고 싶습니다 (접근 용이성을 위해)하지만 제목이 표시되므로 버튼에 title 속성을 설정할 수 없습니다 (아이콘 만 표시되기를 원합니다)). Title (이미지 전용)이없는 NSButton에 대해 VoiceOver에서 읽은 내용을 어떻게 변경합니까?

나는
[self.button accessibilitySetOverrideValue:title forAttribute:NSAccessibilityDescriptionAttribute]; 

를 사용하여 시도하지만 아무것도 변경되지 않습니다. 또한 NSAccessibilityTitleAttribute, NSAccessibilityRoleDescriptionAttribute 및 NSAccessibilityRoleAttribute를 사용해 보았습니다. 내가 뭔가 잘못하고 있니?

감사합니다.

답변

5

원본 코드가 정확한 것처럼 보이지만 버튼 셀 (버튼 자체가 아니라)에서만 호출됩니다. 위의 내용은 다음과 같이 변경되었습니다 :

[self.button.cell accessibilitySetOverrideValue:title forAttribute:NSAccessibilityDescriptionAttribute]; 

여기서 제목은 여전히 ​​NSString*입니다. 제목이 @"Test"이라고 가정 할 때, 위의 코드는 VoiceOver가 "선택 취소 된 체크 상자"를 읽도록합니다. "확인되지 않은 확인란"부분을 읽지 않는 유일한 방법은 NSAccessibilityTitleAttribute, NSAccessibilityRoleDescriptionAttributeNSAccessibilityRoleAttribute의 세 가지 속성을 지우는 것입니다. 나는 이들 각각을 @" "으로 무너 뜨 렸습니다. 누구든지이 필드를 무시하는보다 우아한 해결책이 있다면 알려 주시기 바랍니다. 당분간, 나는 이것을 대답 할 것입니다. 어쩌면 라디오 버튼처럼 동작 스위치 버튼,

class CustomTabBarGroup: NSView, NSAccessibilityGroup { 

    required init?(coder: NSCoder) { 
     super.init(coder: coder) 

     // We function as a tab group — closest in role is a radio button group 
     self.setAccessibilityRole(NSAccessibilityRadioGroupRole) 

     // You can also override what the role normally reads: 
     self.setAccessibilityRoleDescription("Tab bar") 
    } 

    //... 
} 

을 그리고 : 사용자 지정 NSView의에서,

예 :

요세미티에서
+0

해결 방법이 있으며 다른 사람들이 혜택을 누릴 수 있도록 허용 된 답변으로 표시해주세요. – JoePasq

+0

이전에 접수했음을 표시하려고했지만 24 시간 동안 내 답변을 수락 할 수 없습니다. – nick

1

(10.10), 당신은이 작업을 수행 할 method-based accessibility API을 사용할 수 있습니다 (몇 가지 중 선택된 탭 같은 예) 앱에서 : 표준이 아닌 모양이 같은 역할을 채택와 컨트롤의 예를 들어

class CustomTabBarButton: NSButton { 

    required init?(coder: NSCoder) { 
     super.init(coder:coder) 
     self.setAccessibilityRole(NSAccessibilityRadioButtonRole) 
    } 

    //... 
} 

, 아이 포토의 조정 PA 체크 아웃 nel. "빠른 수정", "효과"및 "조정"탭이있는 오른쪽 탭 표시 줄은 실제로 라디오 단추가있는 라디오 단추 그룹입니다. 또한 효과 탭 아래의 효과 견본은 스테퍼, 체크 상자 및 버튼입니다.