Verificar una solución en un ajuste extremo reveló un segundo bug
Último de esta ronda de accesibilidad en Deep Cut Atlas: fui a verificar una solución, y el paso de verificación destapó un bug no relacionado que no estaba buscando.
La tarea se suponía simple: revisar si el texto se trunca bien en el tamaño de texto de accesibilidad más grande de iOS (el ajuste “XXXL” que está por encima del rango normal de Dynamic Type, un paso antes de los tamaños específicos de accesibilidad de los que depende alguna gente). Los títulos de álbum y de pista eran los sospechosos esperados, y se comportaron exactamente como se esperaba, cortándose limpio con puntos suspensivos. Aburrido, en el buen sentido.
Después miré la pequeña insignia de color con forma de píldora “Album” / “EP” / “Single” que acababa de corregir por un problema de contraste unos minutos antes. En este tamaño de texto, se envolvía a dos líneas dentro de su cápsula redondeada, y la palabra “Album” se dividía con guion a la mitad: “Al-bum” apilado sobre sí mismo, con el puntito de color flotando de forma rara a un costado. No se veía como texto escalado. Se veía roto, como una captura de pantalla de un reporte de bug.
La causa: nunca había puesto un límite de línea en ese texto. La mayoría de mis campos de texto ya tenían uno (de pasadas anteriores), así que no se me ocurrió revisar este campo específico, es corto (una palabra), así que nunca se me ocurrió que necesitara protección contra el ajuste de línea. Resulta que “corto” y “no se va a envolver” no son la misma afirmación una vez que el tamaño de texto de quien usa la app es 3 o 4 veces el normal.
Una línea lo arregló: forzar a la insignia a quedarse en una sola línea, igual que todo lo demás, para que se trunque en vez de envolverse.
Lección: fui a buscar una categoría conocida de problema (texto largo que se corta) y encontré una distinta (texto corto que se envuelve de forma inesperada) solo porque estaba mirando de verdad la pantalla en vez de razonar sobre ella en abstracto. “Este campo es demasiado corto para necesitar un límite de línea alguna vez” fue una suposición real que hice, y estaba mal. Probar en el ajuste extremo real, no solo en el modelo mental de lo que hace el ajuste extremo.
Lecturas relacionadas
Lo que encontró una auditoría de accesibilidad en mis propias insignias de SwiftUI
Texto del mismo tono sobre su propio fondo con 18% de opacidad mide 1.27:1 sin importar qué color elijas, y la única insignia que pasó lo hizo poniéndose en negrita en vez de cambiar de color.
Una corrección de accesibilidad de dos líneas que necesitó un teléfono real para comprobarse
VoiceOver no podía distinguir cuál playlist estaba vinculada. La corrección fue .accessibilityAddTraits(.isSelected). Comprobarlo implicó un desbloqueo, un rebuild, y una herramienta de espejado que no encontraba su ventana.
Solo arreglé la captura que me pidieron, no las otras que también estaban rotas
Una captura de marketing recapturada parecía terminada, hasta la pregunta desinflante: ¿de verdad esta es toda captura que se había pedido? Las otras tres del mismo conjunto también estaban desactualizadas, cada una a su manera.