К обсуждениям

Safari Technology Preview 251: SVG и MathML сбрасывают invalid tabindex

Редакция VOne Технологии

Safari Technology Preview 251: SVG или MathML элемент сохраняет старый tabIndex после замены tabindex на недопустимую строку. People-first проверка: машина фокуса «valid tabindex → invalid text → IDL value → focus order»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.

Ответ и граница: Web API

Надёжный ответ появляется только после явного baseline и способного опровергнуть гипотезу контроля. Запрос «как проверить сброс tabIndex после invalid tabindex у SVG и MathML в Safari Technology Preview 251» относится только к ситуации: SVG или MathML элемент сохраняет старый tabIndex после замены tabindex на недопустимую строку. Условие успеха записывается до запуска: IDL не сохраняет устаревшее валидное значение, а focus order совпадает с состоянием после сброса. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «разница нативной focusability SVG/MathML, ошибочно выданная за stale IDL tabIndex». До опыта определите, что будет считаться invalid и unknown. Это защищает от вывода по отсутствующему API, случайному exception или одновременной смене нескольких условий. Производственный сайт, реальный аккаунт и пользовательские данные исключены.

Что подтверждают Release 251 и 318303@main

Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: исправлен сброс tabIndex у MathML и SVG после изменения tabindex на недопустимое значение. Строка релиза ведёт к первичной записи 318303@main; её commit title и доступность перепроверены 29 августа. Пара official/primary подтверждает change item, но не частоту жалоб, спрос, stable-релиз или причинность на чужой странице. Community discussion остаётся только lead к дате. Технический предел статьи совпадает с формулировкой 318303@main и не расширяется поисковым заголовком.

Стенд и рабочий артефакт 318303

Стенд: локальная пара focusable SVG/MathML элементов, кнопки до и после и синтетические tabindex без обработчиков данных. До воздействия без интерпретации запишите: attribute text, IDL tabIndex, activeElement, последовательность focus, key step и accessibility role при наличии. Рабочий артефакт — машина фокуса «valid tabindex → invalid text → IDL value → focus order». Используется минимизация данных: фиксируется allowlist наблюдений и validity flag, а всё идентифицирующее удаляется до сохранения. Если этого недостаточно, статус — environment-blocked. Наблюдение не интерпретируется до прохождения control и финального cleanup.

Контроль, который может опровергнуть гипотезу

Control не доказывает универсальность; он проверяет, что стенд способен различить соседнюю причину. Для этой боли используется: обычный HTMLElement и элемент без tabindex при той же последовательности клавиатурного фокуса. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «разница нативной focusability SVG/MathML, ошибочно выданная за stale IDL tabIndex» получает отдельный признак. Сравнение готовят заранее и не переписывают после результата. Только раздельная реакция canary/control позволяет связать наблюдение с проверяемым условием. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.

Одно обратимое воздействие

Разрешён один шаг: заменить единственный валидный tabindex на invalid token, пройти focus и вернуть исходный атрибут. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «attribute text, IDL tabIndex, activeElement, последовательность focus, key step и accessibility role при наличии». Не добавляйте вторую мутацию. Сначала запишите исходное состояние, затем одну проверку, а в конце докажите возврат тем же набором полей. PASS допустим, когда IDL не сохраняет устаревшее валидное значение, а focus order совпадает с состоянием после сброса. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.

Stop-line, решение и минимальный handoff

Результат может быть reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Остановитесь, если скрипт вызывает focus принудительно, tabindex меняет framework, элемент скрыт или control имеет другой порядок DOM. Финальная запись хранит машина фокуса «valid tabindex → invalid text → IDL value → focus order», результат контроля, отметку rollback и ссылку на 318303@main. Финальный статус не бинарный: отдельно различаются воспроизведение, отсутствие воспроизведения, отсутствие поддержки, блок среды, невалидность и нехватка данных. Разработчику передают минимальный код, обезличенную таблицу, статус control/cleanup и ссылку на commit. Полный профиль браузера или пользовательский контент не нужен. PASS означает только условие «IDL не сохраняет устаревшее валидное значение, а focus order совпадает с состоянием после сброса». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.

Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318303@main, техническая граница, независимый контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.