12

アクセシビリティの問題を修正するためにiOSアプリを使用しています。アプリの機能の1つは、ユーザーが検索クエリを入力できるUITextFieldです。私はフィールドの特性を「検索フィールド」に設定しましたが、VoiceOverはほとんどの場合フィールドでうまく機能します。フィールドにテキストがある場合、テキストを読み取り、「検索フィールド」と表示します。

私が解決したい問題は、VoiceOverがプレースホルダーテキストを処理する方法です。テキストフィールドが空の場合、サンプルクエリを表示するようにプレースホルダーテキストを設定しました。グレー表示されたテキストとして表示されるため、目の見えるユーザーは、それが単なるプレースホルダーテキストであることがわかります。しかし、VoiceOverは、視覚障害のあるユーザーにはそのような区別をしません。プレースホルダーテキストを通常のテキストと同じように読み取るだけで、追加の説明はありません。

UITextFieldのプレースホルダーテキストにアクセシビリティ特性を追加する方法はありますか?それとも、他の方法でこれを回避したことがありますか?

4

3 に答える 3

2

NSString オブジェクトに accessibilityLabel やその他のアクセシビリティ プロパティを設定し、その文字列をプレースホルダー テキストとして使用できると思います。Voiceover はそのプロパティを検出して使用します。

NSString *placeholderText = @"Search";
placeholderText.accessibilityLabel = @"Try searching for xxxx";
field.placeholder = placeholderText;

そんな感じ。テストされていませんが、WWDC 開発者のビデオの 1 つで見ました。

警告: iOS 8.0 以降での動作は期待どおりではありません。

//In iOS 8+
NSString *placeholderText = @"Search"; //This will be announced
placeholderText.accessibilityLabel = @"Try searching for xxxx";//This will be ignored
field.placeholder = placeholderText;

この回答は時代遅れであると見なされるべきです。

于 2012-07-17T14:23:52.720 に答える
1

できません。特性は、アクセシビリティ要素でのみ意味があります。UITextField を「静的テキスト」にすることは、おそらく正しくありません。有効なコードであっても、テキスト フィールド内のアイテムに特性を設定しても効果はありません。

できることは、コントロールの accessibilityLabel を編集することです。

于 2015-08-13T00:08:49.637 に答える