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 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318303@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.