Navegación conveniente, una interfaz intuitiva, realizar un pedido en un par de clics: todos los días simplificamos la vida de los clientes de nuestras aplicaciones, teniendo en cuenta sus deseos y dolores. Debido a la falta de la analítica necesaria en este proceso, perdemos las solicitudes de una gran categoría de usuarios potenciales con restricciones de salud que no pueden utilizar los servicios móviles simplemente porque no está destinado o no se enfoca en problemas de accesibilidad. Cómo hacer que su aplicación sea cómoda para las personas con discapacidad visual, dicen los empleados de Dodo Pizza al decodificar la nueva versión de AppsCast .
Alexei Kudryavtsev: Hoy hablamos de la disponibilidad de aplicaciones móviles con dos invitados de
Dodo Pizza a la vez: Mikhail Rubanov (también
conocido como
Duality ) y Armen Khatayan. Chicos, cuéntanos más sobre ti.
Mikhail Rubanov: Soy el programador de iOS de nuestra aplicación principal de pedidos de pizza. Mi objetivo es desarrollar la parte frontal del servicio, logrando la excelencia técnica, lo cual es imposible sin el soporte de VoiceOver y la implementación de la disponibilidad de la aplicación.
Armen Khatayan: Para mí, el tema de Accesibilidad es especialmente cercano, ya que perdí la vista mientras estudiaba en una universidad técnica.
En algún momento, me di cuenta de que si las personas no intentan mejorar la situación con la disponibilidad de aplicaciones, entonces debemos popularizar este problema y ayudar a resolverlo.
Comencé a familiarizarme con varias aplicaciones, probarlas y enviar los defectos encontrados a la empresa.
Una historia interesante salió con Dodo Pizza. Los chicos lanzaron el juego
CMAN , disponible en un telegrama, de acuerdo con los resultados de los cuales logré ir a la oficina de la compañía para hablar con los desarrolladores, y luego me invitaron a una entrevista. Ahora me ocupo de problemas de accesibilidad, pruebas de acceso universal, elaboración de planes de prueba, recopilación de deficiencias y asistencia técnica para los usuarios.
Introducción a la accesibilidad
Alexei Kudryavtsev: Primero determinemos qué es la accesibilidad.
Mikhail Rubanov: Hay diferentes tipos de accesibilidad. Necesitamos jugar muchos juegos con dos manos, y si te lastimas la mano, entonces el juego deja de estar disponible. Un caso extremo es una pérdida de audición, visión y movilidad. Para tales situaciones, es posible la adaptación de la aplicación.
Alexei Kudryavtsev: ¿En qué se diferencia esto de la usabilidad?
Armen Khatayan: La usabilidad es la usabilidad de la interfaz. Accesibilidad: la capacidad de usar la interfaz si hay restricciones. La accesibilidad interior puede ser usabilidad.
Mikhail Rubanov: Hay varias etapas de adaptación de la aplicación. La primera etapa asume que la aplicación está rota en todas partes y que solo puede ingresar e iniciar el script nuevamente. Después de una pequeña adaptación, puede pasar por la aplicación a la acción de destino, mientras que la ejecución de la acción es posible, pero el proceso en sí es inconveniente. La última etapa es la adaptación de la acción más específica, teniendo en cuenta la comodidad y la velocidad de uso.
Alexei Kudryavtsev: ¿ Para las personas con qué limitaciones necesita adaptar las aplicaciones?
Armen Khatayan: las restricciones se dividen en funcionales y mentales. Deterioro funcional de la visión, audición, movilidad. Los mentales implican una violación de la psique, la capacidad de percibir adecuadamente el mundo. Las soluciones para estas dos categorías de restricciones son completamente diferentes.
Mikhail Rubanov: Daré un par de ejemplos. VoiceOver puede ser adecuado tanto para ciegos como para personas con habilidades motoras deterioradas, como, por ejemplo,
Stalingulag o Stephen Hawking. En este caso, VoiceOver le ayuda a centrarse en elementos específicos, activarlos e interactuar con toda la aplicación utilizando un dispositivo especial.
Otro ejemplo. Una de nuestras pizzerías en Chelyabinsk emplea a personas con discapacidad auditiva. En nuestro flujo de trabajo, el asistente de voz expresa la recepción de una nueva pizza en el rastreador, pero esta señal de sonido no está disponible para dichos empleados y, para no perder el pedido, tienen que pasar más tiempo en la tableta. Para ellos, una excelente solución al problema es una bombilla que se enciende cuando aparece el pedido.
Sobre problemas cognitivos. Durante el lanzamiento de iOS 7, el fondo del escritorio comenzó a moverse de acuerdo con el acelerómetro y muchos escribieron que estaban mareados. Luego hubo una configuración de movimiento, que le permite reducir el movimiento de la pantalla, incluida la cantidad de animaciones. Esto es útil, por ejemplo, para quienes padecen epilepsia.
Problemas de disponibilidad de aplicaciones
Alexei Kudryavtsev: ¿Qué problemas experimentan las personas con las aplicaciones?
Armen Khatayan: Hay muchos problemas. A menudo, los botones de la aplicación no están firmados y hay que tocar al azar, verificar qué es. La situación se simplifica si el botón tiene una imagen de fondo, entonces VoiceOver hereda su nombre y, sabiendo inglés, puede adivinar el propósito del elemento.
Es posible que el botón no esté disponible en absoluto. Si un desarrollador detecta un clic en una Vista, por ejemplo, una imagen, y procesa el clic, entonces no puedo hacer clic en él con mi VoiceOver.
Mikhail Rubanov: Al intentar hacer un mensajero y colocar el comienzo del diálogo en la parte inferior de la pantalla, las colecciones y las tablas a menudo se ponen boca abajo, y luego las celdas se vuelven. Parece que todo funciona, pero con tal operación en VoiceOver, el gesto de desplazamiento se invierte.
Sucede que para mostrar una nueva pantalla, en lugar de implementar la transición utilizando controladores, agregan una Vista, pero no cuelgan primero el Respondedor en ella. Como resultado, View es completamente inaccesible y, dado que es imposible enfocarse en él, se cierra todo el script.
Alexei Kudryavtsev: ¿Está mejorando la situación con la disponibilidad de aplicaciones en el mercado? ¿Hay más de ellos?
Armen Khatayan: Creo que sí.
Para que las aplicaciones estén más disponibles, necesita usuarios que lo pregunten o desarrolladores cuya cultura ya comprenda que parte del tiempo de desarrollo se debe dedicar a la accesibilidad.
En Estados Unidos, por ejemplo, existe la
Ley de Estadounidenses con Discapacidades (ADA) , según la cual todas las empresas, especialmente las corporaciones gigantes como Google y Facebook, están obligadas a crear productos teniendo en cuenta la accesibilidad para todas las categorías. El incumplimiento de esta ley permite a los estadounidenses demandar a las empresas.
Alexei Kudryavtsev: ¿Cómo se regula este problema en otros países y en Rusia?
Armen Khatayan: En la misma América hay
pautas de accesibilidad al contenido web , que ayudan a desarrollar productos accesibles. En Rusia, esto todavía es de naturaleza consultiva, pero se considera que tanto la sociedad como el estado están tratando de hacer que la vida de las personas con discapacidad sea más accesible. Por ejemplo, recientemente hubo noticias de que teníamos un paddock para personas en sillas de ruedas equipadas con ascensor.
Requisitos previos para adaptar aplicaciones
Alexei Kudryavtsev: ¿Cómo comenzó el trabajo sobre accesibilidad en Dodo Pizza?
Mikhail Rubanov: Hace un año, Sberbank adaptó su aplicación y comenzó a promover esta idea entre las masas. Fueron visitados por Anatoly Popko, un hombre ciego que populariza la idea de que no hay mejor momento para estar ciego que ahora, porque un teléfono inteligente se ha convertido en una mejor fuente de ayuda. Vi el video con su participación y me di cuenta de que aunque puedo hacer buenas interfaces, mis decisiones no funcionan para un cierto número de personas.
Cuando vemos una tasa de fallas del 98%, las personas que no pueden hacer un pedido comienzan a preocuparnos mucho. Al mismo tiempo, hay personas que no pueden usar nuestra aplicación en absoluto, pero nadie ofrece análisis al respecto.
La autoestima resultó herida, y fui a entender el marco. Resultó que había pocos materiales sobre el tema y fueron escritos superficialmente. Me enterré, los viernes por la noche, durante un par de horas caminé alrededor de la aplicación, traté de arreglar algo. Comenzó con cosas simples: subtítulos a botones con imágenes, terminó con pantallas que no estaban disponibles. Después de un mes de inmersión, preparé una presentación sobre accesibilidad, que nuestros productos vieron, se dieron cuenta del problema y dieron luz verde al libre desarrollo de la tecnología, la adaptación del marco. Hace tres meses apareció Armen en nuestro equipo y esto ayudó mucho a mejorar la aplicación.
Daniil Popov: una analogía genial con la tasa de accidentes. Cuando tenemos el medio por ciento de los usuarios que sufren accidentes, nos ocupamos de esto, y cuando el medio por ciento no puede usar la aplicación, ni siquiera lo sabemos.
La conclusión es lógica: piense en todas las categorías de personas que podrían usar su aplicación.
Alexei Kudryavtsev: ¿Tiene análisis sobre el número de dichos usuarios?
Mikhail Rubanov: Existe un problema de análisis general, ya que no hay estadísticas claras sobre cuántas personas ciegas hay en general en Rusia y la CEI. Puede calcular de forma independiente el número de usuarios que tienen VoiceOver habilitado en los dispositivos. Existe un método isVoiceOverRunning en la clase UIAccessibility, que se puede configurar para ejecutar la aplicación.
Alexei Kudryavtsev: ¿Cuánto adaptó la aplicación antes de vender la idea a la gerencia?
Mikhail Rubanov: Ayudó que el tema de accesibilidad coincida con los valores de la compañía: "La pizza es una fiesta", "Pizza para todos". La idea impresionó a los desarrolladores, el producto y no tomó mucho tiempo y dinero.
El plan de implementación puede ser bastante simple: obtenga el escenario principal y vea cuál será la reacción. Los ciegos tienen una comunidad fuerte, hay grupos donde discuten las aplicaciones y la interacción con ellos. No anunciamos nuestra adaptación a través de notas de lanzamiento, las personas en las redes sociales comenzaron a escribir sobre la aplicación, la información se distribuyó de boca en boca. Este es el dinero.
Armen Khatayan: Inicialmente, la accesibilidad se percibe como caridad. Es necesario asignar tiempo y recursos y no está claro qué beneficio traerá esto. Luego viene el entendimiento de que el dinero de los usuarios ciegos es exactamente el mismo que el de los videntes.
No importa quién compre la pizza, es importante dar la oportunidad de hacerlo.
Interacción con VoiceOver
Daniil Popov: Tratemos con el componente técnico. ¿Qué es VoiceOver y cómo funciona?
Armen Khatayan: VoiceOver proporciona información visual en formato de audio. Expresa la metainformación que se encuentra en los elementos de la interfaz y, posiblemente, incluso gráficamente inaccesible.
Hay varias formas de habilitar VoiceOver. La forma más fácil es preguntarle a Siri al respecto con la frase "Siri, activa VoiceOver". Puede activarlo a través de la configuración en el elemento Accesibilidad y haciendo triple clic en el botón Inicio o el botón de bloqueo (en dispositivos más antiguos donde el botón Inicio no está), VoiceOver se activará o desactivará. Después de encenderlo, cambia la forma de controlar el dispositivo: con un solo toque de la pantalla, se expresa lo que se encuentra en esta parte de la pantalla; haciendo doble clic en un elemento se activa (haciendo clic en un botón u otra acción objetivo); Para desplazarse, debe usar tres dedos.
Daniil Popov: ¿Utiliza la accesibilidad en la versión de Android de la aplicación? ¿Y cuántas características coinciden entre plataformas?
Armen Khatayan: Android tiene sus propios servicios de accesibilidad. TalkBack es responsable de la visión. La funcionalidad es idéntica a VoiceOver, aunque sucede que en Android algunas funciones funcionan mejor que en iOS. Hasta ahora, no hay suficiente tiempo para nuestra aplicación de Android, pero pronto comenzaremos a adaptarnos.
Daniil Popov: A menudo hay una situación en una aplicación que bloquea algunos elementos de la interfaz porque los valores no se ingresan en los campos de entrada. ¿Cómo hace VoiceOver para que el usuario con discapacidad visual sepa que el botón está bloqueado y que se deben tomar otras medidas para desbloquearlo?
Mikhail Rubanov: Hay una colección de rasgos de accesibilidad en iOS, varias configuraciones que le permiten cambiar la forma en que interactúa con un elemento. Puede firmar cada elemento con su nombre, valor y anotar una de las propiedades. Hay un valor de
seleccionado para manejar listas, o
deshabilitado para indicar un elemento inaccesible. Hay un rasgo
ajustable interesante que se aplica a varios controles deslizantes, paso a paso, cuando puede cambiar el valor de un elemento con deslizamientos hacia arriba / abajo y volverá a hablar.
Hay una opción para habilitar directamente la interacción, por ejemplo, un panel en el que puede dibujar para dejar una firma en un cheque en un restaurante. Hay varias configuraciones para multimedia: después de presionar el botón, el sonido o la película comienza a reproducirse inmediatamente, y VoiceOver debe apagarse hasta que comience a interactuar nuevamente con la pantalla.
No es necesario cerrar las muletas: establezca la configuración y el sistema mismo dirá todo con la entonación correcta.
Características de trabajar con VoiceOver
Alexei Kudryavtsev: Dijiste que trabajar con accesibilidad cambia la conciencia y no es tan simple como parece a primera vista. ¿Qué debe enfrentar el desarrollador al sumergirse en el proceso?
Mikhail Rubanov: Si hablamos de las dificultades de trabajar con VoiceOver, descubrimos que necesitamos pronunciar algunos elementos. Por ejemplo, la aparición de un mensaje emergente en la aplicación (no un envío estándar, sino un mensaje de panel sobre la realización de un pedido) debe analizarse mediante una notificación de accesibilidad posterior. Nos enfrentamos al hecho de que cuando presiona el botón, VoiceOver interrumpe nuestro texto y pronuncia el nombre del botón. Resolvimos el problema: envolvimos todo lo que se despachó después, lo movimos durante 100 milisegundos y, de forma independiente, matamos a VoiceOver.
La principal dificultad es que al tratar de encontrar una solución, está tratando de encontrarla en Internet, pero los métodos que otros ofrecen casi siempre no funcionan.
Limpiamos la aplicación de muletas. Cuando se trabaja con accesibilidad, es importante mostrar los controladores correctamente. Como mencioné anteriormente, en algunos proyectos, al crear una nueva pantalla, simplemente agregaban una nueva Vista a la jerarquía, sin asegurarse de que el firstResponder funcionaba correctamente. Como resultado, VoiceOver no la vio. Lo rehicimos a un controlador normal y todo se reparó de inmediato.
Nuestro sistema de diseño tiene controles para cambiar el tamaño, la cantidad y antes de que se dividieran en varios botones. Por ejemplo, la cantidad paso a paso se emitió con los botones "menos", "más", la cantidad y el precio total de los bienes. Combinamos todo en un solo control. Ahora puede aumentar la cantidad con un deslizamiento vertical, e inmediatamente se revelará un nuevo precio. Este control se utiliza en varios lugares de la aplicación, por lo que una solución pudo mejorar varias pantallas a la vez.
Daniil Popov: en Instagram, la mayor parte de la aplicación está vinculada a las imágenes. ¿Cómo funciona VoiceOver con este contenido?
Mikhail Rubanov: Instagram sugiere subir una foto para hacer una firma para ciegos. Además, el servicio ya ha evolucionado desde simplemente mostrar fotos en la historia, acompañadas de imágenes. Además, ahora puedes usar video con sonido allí. El iPhone también está tratando de reconocer fotos y rostros, informa qué hay en la imagen, qué tan claro es.
La tecnología está evolucionando. En Netflix, por ejemplo, puedes ver películas con subtítulos especiales que además cuentan lo que está sucediendo en la pantalla.
Daniil Popov: ¿Cómo mantener el equilibrio? Para los usuarios comunes, quiero mostrar un máximo de animaciones hermosas con transiciones suaves, efectos 3D, pero también quiero que las personas con discapacidad visual puedan usar completamente la aplicación.
Mikhail Rubanov: Si hablamos de optimización de recursos, muchos métodos en iOS pasan el parámetro
animado. Puede confiar en él o configurarlo usted mismo, por ejemplo, apague la animación a través de isVoiceOverRunning. En este caso, puede rasgar la función, probar, encontrar una solución alternativa. VoiceOver tiene muchas tecnologías diferentes que le permiten adaptar el contenido. Incluso existe la capacidad de controlar la entonación de la voz de voz. Solo necesitas aprender el marco.
Daniil Popov: Realmente no me gusta la opción de tocar cada botón en la pantalla. Facebook tiene docenas de estos botones, y el proceso se convierte en una burla. ¿Existen mecanismos más convenientes?
Armen Khatayan: La interfaz para el usuario ciego es radicalmente diferente de la gráfica. VoiceOver tiene la capacidad de aprender la interfaz de dos maneras: secuencialmente y al azar. Si se estudia secuencialmente, el cursor se mueve a través de cada elemento a medida que se especifican en la jerarquía. Deslizar a la derecha se mueve al siguiente elemento, deslizar a la izquierda - al anterior. Con el deslizamiento hacia la derecha, puede pisar completamente la interfaz completa y comprender dónde algo no está disponible.
Alternativamente, puede simplemente conducir alrededor de la pantalla y ver dónde está ubicado. En mi experiencia, la mayoría de las personas ciegas usan la navegación secuencial, ya que es más conveniente.
En Facebook, por ejemplo, hay una fuente de noticias con publicaciones, cada una de las cuales tiene botones como, compartir, fotos, enlaces. Facebook hizo cada publicación un elemento separado. Todo lo relacionado con las acciones con esta publicación se realiza en la acción personalizada. Deslizar hacia la derecha elimina una celda o mensaje, el deslizamiento vertical puede seleccionar esta acción. En las publicaciones, los deslizamientos verticales lo ayudan a navegar a través de todas las acciones: poner una reacción, compartir, ver información detallada.
Mikhail Rubanov: Desde el punto de vista técnico, VoiceOver no abarca las características comerciales, pero incluso ayuda a comprender cómo hacerlas. Por ejemplo, muchos se están mudando a un sistema de diseño donde todos los controles se minimizan y solo se usan. Trabajar en controles básicos le permite garantizar la disponibilidad de la mayoría de las pantallas. Aserrar muletas en caso de transiciones y mostrar los controladores correctamente proporciona compatibilidad con VoiceOver y hace que la aplicación sea más limpia.
Probar la aplicación es fácil. Elija un escenario exitoso e intente caminar sobre él. Verá una gran cantidad de problemas. Al adaptar un escenario exitoso completo, resolverá la mayoría de los problemas. Los escenarios de errores y comportamiento no estándar permanecerán, y la consulta de una persona que se especialice en esto ya es necesaria.
Armen nos ayudó en esto y, aunque estábamos seguros de que nuestra aplicación estaba bien adaptada, nos convenció.
Armen Khatayan: Sí, una persona que enfrenta restricciones en su vida diaria contará mucho más sobre esto.
VoiceOver tiene una funcionalidad que lo ayudará a acercarse a las personas ciegas. Debe tocar la pantalla tres veces y se apagará. De una manera tan simple, puedes entender más fácilmente a los ciegos.
Al adaptarse, es importante cumplir con ciertas reglas en el nombramiento de firmas. Si es un botón, no es necesario repetir una vez más que es un botón. Solo debe haber una acción que realice el botón. Por ejemplo, "crear una nota" en lugar de "crear una nueva nota". Antes de agregar una etiqueta, considere si realmente refleja su esencia.
Mikhail Rubanov: Un escritor técnico, si lo hay, puede resolver fácilmente este problema en la empresa.
Por cierto, Apple en WWDC mostró un chip en MacOS cuando puedes trabajar con el sistema operativo usando la voz: pídele que muestre todas las firmas en la pantalla, el número y di cuál necesita ser adaptado. Si su aplicación ya funciona con VoiceOver, la innovación comenzará automáticamente después de la compilación. Desafortunadamente, hasta ahora esto solo funciona en Estados Unidos y con inglés.
Alexei Kudryavtsev: ¿Qué herramientas además de VoiceOver ayudan a las personas con otras restricciones de salud a usar aplicaciones?
Mikhail Rubanov: Existe DymanicType que le permite establecer el tamaño de fuente. Esto desarrolla la competencia del desarrollador de iOS para escribir controles, porque cuando le dijeron al control que puede aumentar 3-4 veces, se deben inventar otras soluciones y, en lugar de desplazar las celdas horizontalmente, hacer una lista desplegable y adaptarla.
Existen opciones como volver a usar la transparencia o reducir el movimiento: adaptaciones para personas con discapacidades visuales o para quienes están acunados, pero aún no los hemos alcanzado. En la dirección de otras tecnologías, tampoco hemos cavado todavía.
Alexei Kudryavtsev: ¿Qué tan buena es la API de accesibilidad de Apple? ¿Hay alguna falla en esto?
Mikhail Rubanov: Ella es muy buena y me hizo escribir controles y transiciones. Hay una depuración bastante complicada, porque si sus botones no están disponibles o su orden se ha vuelto diferente, entonces puede solucionarlo solo adivinando cómo funciona. Me ayudó que imaginara cómo yo mismo escribí tal tecnología si tuviera una jerarquía de vistas con vistas y la capacidad de extraer una etiqueta de ellas.
Alexei Kudryavtsev: Los desarrolladores a menudo tienen dificultades para construir la jerarquía correcta. ¿Cómo lidias con esto?
: . , , , , Facebook .
action, , , actions VoiceOver.
, , , «» — , . , accessibility value — . . , , .
. accessibility elements . , . — , isAccessibilityElement == false ., isAccessibilityElement == true, VoiceOver . .
Accessibility?
: , , ?
: , , , . , . .
, , , .
. . : Android , , , .
, , . «button», «button», «button». , - , , . «button» .
: , flow accessibility. , flow ? ?
: , , VoiceOver .
: VoiceOver ?
: , UI-, . VoiceOver, UI-. , accessibility value, accessibility label unit-. . , UI- #if UITEST .
: ?
: , , . , VoiceOver , . , «, , …» . .
: . , VoiceOver, . «» , . , .
Best practices
: accessibility?
: UIAccessibility.h . , . Apple : , , . , .
: WWDC ?
: , accessibility. ,
.
: , ?
: Applevis : ,
.
- , , . , , «
» — .
. , : Accessibility Inspector Xcode, , .
-, .
-, accessibility, .
: Accessibility — - , . , iOS . , .
. . , . , . , , .
, , 21-22 - AppsConf. iOS- accessibility Juno.
AppsCast , , SoundCloud , .