私のアプリには、大きな空白のtableHeaderViewを持つテーブルビューがあり、可視のセルをウインドウから完全にスクロールすることができます。 したがって、{0,0}のcontentOffsetはコンテンツがウィンドウの外にスクロールされることを意味します。最初のcontentOffsetは{0、{tableViewの高さ}}です。大きなヘッダーVoiceOverと互換性のあるUITableViewを作成するにはどうすればよいですか?
これはすべてうまくいきますが、アクセシビリティを有効にするのは難しい問題です。
ユーザは、ナビゲーションバーとそのバーボタンから始めて要素を踏み越えます。彼女が再度スワイプしてテーブルビューの最初のセルをアクティブにすると、テーブルビューは自動的に{0,0}にスクロールします。ただし、最初のセルはこのcontentOffsetで表示されないため、最初のセルにフォーカスを当てることができず、最後に選択した要素にフォーカスが維持されます。
これをどうにかして防止するか、VOモードでcontentOffsetを手動で制御できますか?
問題を示すdemo projectを作成しました。
loadにcontentOffsetを設定します。ただし、VoiceOverがテーブルビューに「タブ」すると、contentOffsetはシステムによって自動的に間違って変更されます。私は、新しい要素へのVOスイッチを検出するイベントやフックを認識しておらず、同様に、正しいVOスクロールイベントを間違ったものから容易に区別することができません。 –
仮に、['UIAccessibilityFocus'](https://developer.apple.com/reference/uikit/1657010-uiaccessibilityfocus)非公式プロトコルを使用して遷移を検出することができます。 – Justin