Письменность с миллиардом читателей всё ещё нельзя правильно выровнять ни в одном браузере 2026 года

Классический арабский выравнивает строку растяжением штрихов внутри букв (кашида) — приём кодифицирован около 940 года, — а не пробелами между словами. CSS делает наоборот, и для любого, кто читает на этой письменности, результат выглядит неправильно.

Вкратце

Спецификации, чтобы сделать всё верно, существуют десятилетиями. Таблица выравнивания в OpenType появилась в 1997-м, но движки шейпинга её не читают, поэтому словолитни её не поставляют. А один странный квартал 2000 года IE 5.5 был единственным софтом на Земле, выравнивавшим арабский правильно.

Решить это никому коммерчески не выгодно, так что работа ложится на волонтёров. Разработчик, только что написавший шейпер с поддержкой арабского с нуля, подтвердил разрыв — и указал, где он на самом деле живёт.

Письменность, которую цифровой стек до сих пор не умеет набирать

Пост делает неудобное заявление: в 2026 году стандартный текстовый стек всё ещё не может выровнять арабский так, как того требует письменность, хотя спецификации и open source-инструменты для этого существуют десятилетиями. Классический арабский выравнивает строку не набивкой промежутков между словами. Он выравнивает её кашидой — удлинением соединительных штрихов внутри слов, — пропорциональной системой, которую Ибн Мукла кодифицировал около 940 года и которая держалась примерно тысячу лет. CSS, построенный вокруг межсловных интервалов, по умолчанию выдаёт рваные, неарабские строки.

Автор прослеживает технический долг до цепочки компромиссов: «упрощённый арабский» Камеля Мрувы образца 1958 года свёл позиционные начертания букв к 90 каналам линотипа и за поколение завоевал арабские редакции. Слой стандартов рассказывает ту же историю наполовину достроенных решений. Таблица выравнивания JSTF в OpenType существует с 1997 года, но движки шейпинга её не читают, поэтому словолитни перестают её поставлять. И было одно короткое сюрреалистичное исключение:

«Internet Explorer 5.5 реализует text-justify: kashida. На один короткий, странный браузерный квартал Microsoft становится единственным поставщиком софта на Земле, способным правильно выровнять арабский на экране.» — разработчик из Туниса

Автор шейпера подтверждает, где живёт разрыв

Самый сильный технический голос в треде только что построил ровно ту машинерию, о которой шла речь, и точно указал недостающую деталь — не в шейпере, а в рендерере:

«отсутствие растяжения — это и правда изъян в спецификации OpenType… У шейпера нет информации о доступном пространстве, но при рендеринге можно растягивать отдельные глифы… Конечно, таблица JSTF была бы правильным способом это сделать» — автор Hyvector, только что написавший с нуля шейпер для арабского, насталика и индийских письменностей

Шире: чьи проблемы вообще решают

Один читатель расширил картину до случайности истории, зашитой в наши инструменты:

«Представьте, что компьютеры завоевал бы какой-нибудь CJK-язык, у которых ничего из этого нет. Можно вообразить похожую статью о том, насколько экзотична и сложна вёрстка английского.» — комментатор о случайности „текста по умолчанию“

А внимательные читатели не давали автору расслабиться, точно переспросив, то ли значил пассаж о двунаправленном порядке цифр, что хотел сказать:

«Автор имеет в виду старший разряд слева?… числа везде на Земле читаются со старшего разряда.» — читатель с высокой кармой, давящий на формулировку из UAX #9

Последнюю милю никто не оплачивает

Это не нерешённая научная задача. математика, таблица в спецификации и open source-шейперы уже есть; HarfBuzz и шрифты вроде Amiri, как пишет автор, делались по выходным и на энтузиазме. Не хватает невзрачной финальной интеграции, которую ни одному коммерческому игроку не платят довести до конца. И письменность, у которой далеко за миллиард читателей, ждёт: не потому что выровнять её трудно, а потому что сделать это правильно никогда не было ничьей работой.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 11 из 21 Читать дальше
🌍Other

Google хочет собрать дата-центр из 2000 отслуживших Pixel. Тред перечисляет, что убивает телефоны

Разбираете мёртвый телефон до материнской платы — это около половины его «зашитого» углерода, — меняете Android на Linux и оркестрируете кластеры по 25–50 штук через Kubernetes. По данным Google Research, 25–50 телефонов равны одному современному серверу.

★ 251 · 💬 134 · research.google · 4 мин