2009-10-26 10 views

Respuesta

-5

Consulte la documentación de Apple en UIAccessibility.

+0

Sí, ya leí los documentos. Esperaba que hubiera una manera de hacer esto en IB o de alguna otra forma elegante. Publiqué mi solución de kludge pero todavía estoy abierto para un enfoque más limpio. –

+0

Lo sentimos, esta capacidad no se ha agregado (¿todavía?) A IB. Creo que tu kludge es probablemente lo mejor que vas a hacer por ahora. –

15

De acuerdo, parece que no hay forma de hacerlo en Interface Builder, aunque puede establecer atributos de accesibilidad en otros elementos de la IU utilizando IB. Así que me puse una etiqueta en mi barra de herramientas y luego añadí el código a mi método viewWillAppear:

UIToolbar *bottombar = (UIToolbar*)[self viewWithTag:kBottomToolbar]; 

UIView *view = (UIView*)[bottombar.items objectAtIndex:0]; 
[view setAccessibilityLabel:NSLocalizedString(@"Add Bookmark", @"")]; 
[view setAccessibilityHint:NSLocalizedString(@"Add Bookmark", @"")]; 

y así sucesivamente para cada elemento de botón ...

No

el más elegante, pero funciona.

+2

A partir de iOS 5.0, puede establecer directamente la propiedad 'accessibilityLabel' en un' UIBarButtonItem'. – rmaddy

1

Intentar establecer las etiquetas de accesibilidad manualmente no funcionó para mí con las imágenes de UIBarButtonItem. Sin embargo, si configuro el título manualmente, la etiqueta funcionaría. Pero muestra el título debajo de la imagen.

Terminé creando un UIButton y usándolo como una vista personalizada para UIBarButtonItem. La única pérdida es la máscara de imagen que realiza UIBarButtonItem. Bonificación adicional: accesibilidad configurable en IB.

3

me dieron el código anterior para trabajar con UIBarButtonItems con una línea adicional:

[Ver setIsAccessibilityElement: YES];

+0

Esto resolvió el problema. Tenga en cuenta que si una vista principal también tiene esto establecido en SÍ, entonces las subvistas son ignoradas. –

7

Sé que esto es viejo, pero acabo de encontrar una necesidad para esto. A partir de iOS 5.0, ahora se puede configurar fácilmente la etiqueta de accesibilidad de un UIBarButtonItem haciendo:

UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...; 
btn.accessibilityLabel = @"Label"; 

No más cortes.

26

Puede utilizar los "atributos definidos por el usuario en tiempo de ejecución" y especifique su información de accesibilidad que hay: Runtime attributes

+0

Es una manera fácil. – mishimay

+1

Corrección rápida, para la sugerencia, debe usar 'accessibilityHint', no' keyPath' – Sirens

17

en realidad no es suficiente con sólo ajustar la accessibilityLabel Atributo de usuario en tiempo de ejecución Definido en IB. También debe establecer isAccessibilityElement en true. Esto mantiene toda la información de accesibilidad dentro de IB. IB Screenshot

+1

Para hacer coincidir otro elemento, el tipo debe ser Cadena Localizada. – OrangeDog

+0

¿Puedes traducir el conjunto de etiquetas de accesibilidad de esa manera? – Andy

3

Puede usar IBInspectable para esto, por lo que puede obtener algunas opciones útiles en el panel lateral de Interface Builder.

public extension UIBarButtonItem { 
    @IBInspectable var accessibilityEnabled: Bool { 
    get { 
     return isAccessibilityElement 
    } 
    set { 
     isAccessibilityElement = newValue 
    } 
    } 

    @IBInspectable var accessibilityLabelText: String? { 
    get { 
     return accessibilityLabel 
    } 
    set { 
     accessibilityLabel = newValue 
    } 
    } 
} 

UIBarButton Accessibility options in Interface Builder

https://gist.github.com/KaneCheshire/dcce5246c3399072a5200189bfc53fe2

Cuestiones relacionadas