Every eye-chart app makes the same mistake, and it's fatal: it shows you letters. Visual acuity isn't about letter size — it's about the angle a letter subtends at your eye. The 20/20 line on a clinic chart is only the 20/20 line when you stand twenty feet from it; walk five feet closer and the same printed letters test a different acuity entirely. A chart's whole meaning comes from being viewed at the one distance it was made for. Photograph that chart onto a phone screen, hand it to someone who holds phones wherever they hold phones, and you've built something that produces numbers with no meaning at all.

So the phone version starts from the geometry. An angle needs two measured sides, and this activity measures both.

Side one: the screen, measured, not assumed

The first side is the physical size of the letter — the optotype — on the screen. The activity reads the display's actual geometry from the device: its pixel pitch (pixels per millimetre) and physical dimensions, not a guessed "typical phone screen". When the test draws an optotype meant to subtend a particular angle, it knows how many millimetres of glass that requires, and therefore exactly how many pixels.

Side two: the camera as tape measure — continuously

The second side is your distance from the screen, and here's the trick that makes the whole thing a measurement: the front camera watches your face and tracks the distance continuously, for the entire run — using the camera's field of view and the separation between your eyes as the reference scale.

Безперервність має значення. Ніхто не тримає телефон нерухомо під час тесту, що триває кілька хвилин — ви відхиляєтеся, нахиляєтеся, влаштовуєтеся зручніше. Тест, який вимірює відстань лише один раз на початку, мовчки накопичував би це відхилення як систематичну похибку. Замість цього розмір кожного оптотипу змінюється відповідно до поточної відстані в момент його показу. Наблизьтеся на 5 см, і наступна літера відобразиться меншою, тому вона все одно утворюватиме саме той кут, який передбачено тестом. Відхилення не псує результат; воно фіксується окремо як стабільність сеансу — розкид усіх вимірювань відстані, зроблених під час вашої відповіді. (Вимірювання на етапі налаштування, перш ніж ви влаштувалися, навмисно виключаються — вони б розширили розкид, єдине завдання якого — описати сам сеанс).

Сходинки та чому рівень випадкового вгадування визначає їхню форму

Що ви насправді робите: з'являється оптотип — гачок Снеллена (літера E з чотирма можливими орієнтаціями), і ви відповідаєте, куди він спрямований: вгору, праворуч, вниз чи ліворуч. Чотири варіанти означають, що сліпе вгадування буде правильним в одному випадку з чотирьох, і цей 25%-й рівень випадковості — це саме те, під що підбирається адаптивне правило — алгоритм «2 вниз / 1 вгору»: дві поспіль правильні відповіді перед тим, як літери зменшаться, та одна неправильна відповідь, щоб вони збільшилися. При ймовірності вгадування 1 до 4 це правило збігається до стабільної, чітко визначеної точки на вашій психометричній кривій замість того, щоб зміщуватися вниз через випадкові правильні відповіді.

Адаптивний тест не знає своєї тривалості заздалегідь — кількість спроб залежить від ваших відповідей. Тому прогрес вимірюється у змінах напрямку, тобто в моментах, коли сходинки змінюють напрямок: сеанс націлений на їхню фіксовану кількість, і співвідношення отриманих змін напрямку до запланованих — це єдина шкала прогресу, яку адаптивний тест може чесно відобразити.

Випадки, коли тест взагалі відмовляється запускатися

Екран телефону має жорсткі обмеження в обох напрямках. Знизу є мінімальна межа рендерингу: оптотипу потрібна мінімальна кількість пікселів, щоб взагалі мати свою форму, і нижче цієї межі дисплей фізично не може відобразити меншу літеру — на вашій поточній відстані ця межа відповідає найкращій гостроті зору, яку можна перевірити. Зверху є фізична стеля: найбільший оптотип, який поміщається на панелі.

Перед першою спробою активність перевіряє, чи дійсно існує корисний діапазон між цією нижньою межею та стелею на виміряній відстані. Якщо ні, тест відмовляється запускатися — екран пояснює проблему замість того, щоб показувати сходинки, які не можуть рухатися. А сеанс, який дійсно завершився, все одно може закінчитися на одній із меж: правильне прочитання найменшої літери, яку можна відрендерити, означає, що ваш зір кращий, ніж цей екран може перевірити, про що буде повідомлено саме цим реченням, а не улесливою цифрою.

Послідовність перевірок — це головний аргумент. Коли сеанс завершується, стабільність відстані оцінюється перед вердиктом самого методу сходинок — адже сходинки, які чудово збіглися, поки ви ходили туди-сюди, є точним вимірюванням нічого. Лише після того, як дані про відстань проходять перевірку, метод сходинок може сказати, чи відбулося збігання, чи було досягнуто нижньої або верхньої межі. Кожне завершення — це окреме формулювання, і лише одне з них є числом. А перерваний сеанс не зберігає взагалі нічого: пройдені наполовину сходинки — це не зразок вашого зору, а лише показник того, як далеко ви дійшли, перш ніж покласти телефон.

Наскільки надійне це число?

Надійніше, ніж ви очікуєте — і кодова база говорить про це прямо, на відміну від свого сусіда. Тест слуху містить постійне застереження про похибку ±10 dB, оскільки жоден інструмент на телефоні не може виміряти абсолютний звуковий тиск. Тут обидві сторони кута вимірюються безпосередньо на пристрої: розмір оптотипу — за кроком пікселів дисплея, відстань — за допомогою камери. Лише одна величина є припущенням — середня відстань між очима дорослої людини, яка є орієнтиром камери для визначення відстані — і вона дає похибку близько ±0.02 logMAR, що менше за розкид повторних випробувань клінічної таблиці, яку цей тест імітує. Сеанс, який успішно збігся, виводить значення в logMAR з його еквівалентами за Снелленом та десятковим дробом, що є цілком порівнянним для різних пристроїв і людей.

А тепер інша половина правди, адже недоліки реальні, і активність про них повідомляє. Ви можете мружитися. Ви можете нахилятися між вимірюваннями відстані. Чотири напрямки можна частково запам'ятати. Яскравість екрана та світло в кімнаті визначають контрастність літер, яку справжня таблиця стандартизує, а телефон — ні. Припущення про міжзіничну відстань розраховане на дорослих, тому результат дитини вказуватиме на далекозорість. Це скринінгова оцінка, а не огляд офтальмолога чи рецепт на окуляри — спосіб помітити, що ваше праве око бачить на рядок гірше, ніж у березні, і привід записатися на прийом, а не ігнорувати його.

Одне око на сеанс, для запису

Сеанс охоплює одне око (або обидва разом); тестування іншого ока — це другий сеанс, і обидва зберігаються як вимірювання в межах одного сценарію використання у вашому каталозі — в цьому й сенс. Найцінніше, що дає скринінговий тест, — це не якесь одне число, а серія: те саме око, той самий протокол з інтервалом у місяці, де кожен сеанс містить власний запис про стабільність, щоб ви в майбутньому знали, яким результатам довіряти.

Тести зору та слуху мають спільний механізм сходинок і однакові правила відмови від запуску — різні органи чуття, одна філософія протоколу. Щоб отримати повну картину того, що сенсори телефону можуть вимірювати поза вашими власними відчуттями, почніть з огляду інструментів.