iOS는 사용자가 원하는 컨텍스트 내에서 사용자가 수행하도록 허용하지 않습니다. 분할 된 컨트롤의 경우 iOS는 맞춤 방식으로 작동합니다. UIAccessibilityContainer 프로토콜을 재정의하려고 시도하더라도, iOS 프레임 워크를 사용하면 얻으려는 동작이 무시됩니다. UIAccessibilityElement 및 UIAccessibilityContainer 프로토콜을 모두 무시하려고했습니다. 내게 닥쳐 온 것은 내 재정의 것이 었습니다.
- (NSString*)accessibilityHint { return @"This is my hint";}
함수가 호출되었지만 여전히 힌트 값은 무시되었습니다. 알게되면 세그먼트는 그럴듯하게 읽혀집니다.
(label) The title for the segment
(trait) button
(hint) 1 of 2
그런 다음 마지막 부분은 "# of #"입니다. 무슨 일이 일어나고 있는지는 프레임 워크가 사용자가 제공 한 힌트를 무시하고 힌트 대신 세그먼트 수와 세그먼트의 최대 수를 사용한다는 것입니다. 프로토콜을 성공적으로 오버라이드 할 수 있었고 여전히이 방식으로 작동했기 때문에 나는 당신이 붙어 있다고 믿습니다. 사용자 환경에 필요한 정보를 더 제공하면 대안을 제안하게되어 기쁩니다.
편집 : 이것은 인터페이스 빌더에서 접근성 장애가있는 경우에 한층 더 도움이됩니다. 편집 할 세그먼트 컨트롤을 선택하면 힌트와 레이블이 사라집니다. 이러한 유형의 컨트롤에 대해 이러한 문자열을 변경하려고하지는 않습니다. 대부분 백엔드에서는 오버라이드 될 수 없거나 오버라이드 될 수없는 사용자 정의 방식으로이 특정 유형의 UI 객체를 처리하기 때문일 가능성이 큽니다.
iOS에서 의도 한 바를 벗어난 세그먼트 화 된 컨트롤을 사용하고있는 것처럼 들립니다. 문제가 아닌 시나리오를 좀 더 자세히 설명하면 대안을 제시 할 수 있습니다. – ChrisCM