Safari Technology Preview 251: Arabic joining между соседними inline boxes. People-first диагностика: стыковочная карта «code point → span owner → glyph form → boundary state»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Как отделить этот сбой
Прямой ответ на запрос «как проверить Arabic letter joining между соседними inline элементами Safari Technology Preview 251» начинается с границы: проверяется только боль «арабские буквы на границе двух соседних inline boxes отображаются раздельными формами вместо связного shaping» на локальном fixture. Успех заранее определяется так: без пробела формы соединяются через границу inline box так же, как в одном span, а пробел разрывает связь ожидаемо. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — скрытый пробел или bidi mark, ошибочно названный layout-разрывом. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Что именно подтверждено в Release 251
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлено соединение арабских букв, расположенных в соседних inline boxes. Техническая ссылка — 319209@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Измерения до изменения
Fixture: локальная RTL-строка, разделённая на два span без пробела, с фиксированным Arabic font и контрольными code points. До действия без интерпретации записываются граница span, Unicode sequence, direction, font, glyph count и PNG-кроп стыка. Рабочий артефакт — стыковочная карта «code point → span owner → glyph form → boundary state». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
Независимый маршрут сравнения
Контрольная ветка готовится до canary: та же последовательность в одном span и вариант с явным пробелом как отрицательный joining-control. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «скрытый пробел или bidi mark, ошибочно названный layout-разрывом» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Локальный прогон и возврат
Основной шаг: добавить и убрать только нейтральный span boundary, не меняя последовательность символов. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются граница span, Unicode sequence, direction, font, glyph count и PNG-кроп стыка. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда без пробела формы соединяются через границу inline box так же, как в одном span, а пробел разрывает связь ожидаемо. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Стоп-линия и итоговый артефакт
Финальное решение хранится как стыковочная карта «code point → span owner → glyph form → boundary state». Reproduced означает только выполнение условия «без пробела формы соединяются через границу inline box так же, как в одном span, а пробел разрывает связь ожидаемо» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если появился невидимый separator, другой font, bidi control или нормализация изменила code points. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «граница span, Unicode sequence, direction, font, glyph count и PNG-кроп стыка», результата контрольной ветки, отметки rollback и ссылки на 319209@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 319209@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 319209@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.