iOS accessibilité - Comment définissez-vous le label d'accessibilité pour le titre d'un UINavigationBar?
Pomme de voix sur mispronounces le titre de l'un de mes points de vue, qui est à l'intérieur d'un UINavigation Contrôleur.
Dans d'autres parties de l'application, j'ai ajouté un custom label d'accessibilité pour l'aider à prononcer le nom de l'entreprise correctement. Comment puis-je régler le label d'accessibilité d'un UINavigationBar?
OriginalL'auteur Robert Wagstaff | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne sous iOS 8.2. Dans
viewDidLoad
:Quand une manette de navigation des transitions à la vue-contrôleur, le
accessibilityLabel
est de lire au lieu de la vue-contrôleurtitle
.Meilleure réponse, travail sur iOS9.
D'accord, la meilleure réponse.
Salut, je ne pouvais pas obtenir que cela fonctionne lorsque l'élément de navigation
titleView
a été défini. (Fonctionne parfaitement sans titleView, mais il va à l'encontre de mon but...) quelqu'un arrive à faire ça? Merci.Ma conjecture est que vous aurez besoin de mettre la
accessibilityLabel
sur mesure pour votretitleView
. Si votretitleView
a unUILabel
à l'intérieur, vous pourriez essayer de définir laaccessibilityLabel
sur cela aussi.OriginalL'auteur stevekohls
Je ne pouvais pas ajouter un label d'accessibilité, mais j'ai trouvé une solution de contournement:
- Je remplacer la navigationItem titre de la Vue avec un UILabel qui a d'accessibilité mis en place.
Je ne suis pas sûr pourquoi le label d'accessibilité ne fonctionne pas, mais le code ci-dessus fonctionne pour mes besoins.
La grande idée de l'homme !
OriginalL'auteur Robert Wagstaff
Depuis
UINavigationBar
hérite deUIView
, vous devriez être en mesure de définir sesaccessibilityLabel
de la propriété. Essayez:yourUINavigationBar.accessibilityLabel = @"title";
.Aussi, vous devez vous assurer assurer qu'il est marqué comme un élément d'accessibilité avec
yourUINavigationBar.isAccessibilityElement = YES;
(et n'est pas à l'intérieur d'un autre point de vue qui est aussi marqué comme un élément d'accessibilité). (Je suppose que ce dernier peut être le problème, puisqu'il semble que vous le saviez déjà au sujet de l'accessibilité des étiquettes. Vous pouvez utiliser l'Inspecteur Accessibilité dans le simulateur pour voir si c'est le cas en regardant la zone autour de l'élément lorsque vous appuyez dessus pour voir si c'est quelque chose de plus grand que la barre de navigation.)Désolé! J'avoue que je n'ai jamais eu ce problème, mais il me semble que peut-être vous avez besoin de faire cela pour les
titleView
propriété de laUINavigationItem
objet à la place. (BTW, ce qui semble similaire à un problème que j'ai eu avec l'accessibilitéUIBarButtonItem
dans le passé où il n'a pas à se comporter comme "normal" UIView liées à des trucs.)toujours pas de chance, j'ai essayé: auto.navigationItem.title = @"myTitle"; [self.navigationItem.titleView setIsAccessibilityElement:YES]; [self.navigationItem.titleView setAccessibilityLabel:@"AccessibilityTitle"]; à l'intérieur de loadView
OriginalL'auteur Turix
Il une solution de contournement similaire que j'ai testé sur iOS 11 et 12, qui fonctionne comme prévu. Pour le
navigationItem.titleView
définir unUILabel
objet et ensuite configurer votre accessibilité identificateur denavigationItem.titleView
.accessibilityIdentifier partie
Vous pouvez voir votre identifiant à l'aide de Xcode est Inspecteur Accessibilité.
OriginalL'auteur abdullahselek