画面上に視覚的に直感的に配置されているボタンがたくさんありますが、VoiceOver によって直感的な順序で読み取られません。これは、上や下などの特定のボタンが上下に配置されているためです。ただし、ナレーションは左から右へ、上から下へと読み上げを開始するようです。
これにより、ナレーションが「上」の直後に「下」を読み上げるのではなく、「上」の右側のボタンを読み上げます。
読み上げたいボタンをナレーションで読み上げさせるにはどうすればよいですか? ナレーションでスワイプして要素を循環させる機能を使用していることに言及する必要があります。
私のすべてのボタンは、UIView と UIButton のサブクラス化されたバージョンです。これは、私が使用するボタン イニシエータの例です。ピクセル数は無視してください - それが悪い形であることはわかっていますが、現時点ではピンチです:
UIButton* createSpecialButton(CGRect frame,
NSString* imageName,
NSString* activeImageName,
id target,
SEL obClickHandler)
{
UIButton* b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[GlobalHelper nonCachedImage:imageName ofType:@"png"]
forState:UIControlStateNormal];
[b setImage:[GlobalHelper nonCachedImage:activeImageName ofType:@"png"]
forState:UIControlStateHighlighted];
[b addTarget:target action:obClickHandler forControlEvents:UIControlEventTouchUpInside];
b.frame= frame;
return b;
}
- (UIButton *) createSendButton {
CGFloat yMarker = 295;
UIButton* b = createSpecialButton(CGRectMake(160, yMarker, 70, 45),
@"Share_Btn",
@"Share_Selected_Btn",
self,
@selector(sendAction));
b.accessibilityHint = @"Send it!";
b.accessibilityLabel = @"Stuff for voiceover to be added";
[self.view addSubview:b];
return b;
}