Спецификация HTML 4.01 + Спецификация CSS2

         

Переопределение двунаправленного алгоритма: элемент BDO


<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride --> <!ATTLIST BDO %coreattrs; -- id, class, style, title -- lang %LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #НЕОБХОДИМ -- направление -- >

Начальный тег: необходим, Конечный тег: необходим

Определение атрибута

dir = LTR

| RTL [CI]

Этот обязательный атрибут определяет базовое направление текста в содержимом элемента. Это направление переопределяет унаследованное направление символов, как указано в [UNICODE]. Возможные значения:

  • LTR: Left-to-right/слева-направо;
  • RTL: Right-to-left/справа-налево.
  • Атрибут, определённый в другом месте

  • lang (информация о языке)

  • Двунаправленного алгоритма и атрибута dir обычно достаточно для обслуживания внедрённых изменений направления. Однако, в некоторых ситуациях двунаправленный алгоритм может быть причиной некорректного представления. Элемент BDO

    позволяет авторам отключить двунаправленный алгоритм в определённом фрагменте текста.

    Рассмотрим документ, содержащий текст:

    english1 HEBREW2 english3 HEBREW4 english5 HEBREW6

    и представим, что этот текст уже выведен в таком визуальном порядке. Причиной этого может быть то, что стандарт MIME ([RFC2045],

    [RFC1556]) отдаёт преимущество визуальному расположению, т.e. что последовательности текста "справа-налево" вставляются справа-налево в потоке байтов.



    В email этот пример может быть сформатирован с включением символов новой строки:

    english1 2WERBEH english3 4WERBEH english5 6WERBEH

    Это конфликтует с двунаправленным алгоритмом [UNICODE], поскольку этот алгоритм повернёт 2WERBEH,

    4WERBEH и 6WERBEH вторично, отображая еврейские слова слева-направо вместо справа-налево.

    Решением в данном случае будет переопределение двунаправленного алгоритма помещением отрывка Email в элемент PRE

    (для сохранения символов новой строки) и каждой строки в элемент BDO, атрибут dir которого установлен в LTR:

    <PRE> <BDO dir="LTR">english1 2WERBEH english3</BDO> <BDO dir="LTR">4WERBEH english5 6WERBEH</BDO> </PRE>


    Это говорит двунаправленному алгоритму "Оставь меня слева-направо!" и должно создать желаемое представление:

    english1 2WERBEH english3 4WERBEH english5 6WERBEH

    Элемент

    BDO
    должен использоваться в конструкциях, где нужен полный контроль за порядком расположения (напр., несколько многоязычных частей). Наличие атрибута dir для этого элемента обязательно.

    Авторы могут также использовать специальные символы Unicode для переопределения двунаправленного алгоритма. -- LEFT-TO-RIGHT OVERRIDE (202D) или RIGHT-TO-LEFT OVERRIDE (202E). Символ POP DIRECTIONAL FORMATTING (202C) заключает любое переопределение двунаправленного алгоритма.

    Примечание. Напоминаем, что может увеличиться количество конфликтов, если атрибут dir в инлайн-элементах (включая BDO) соседствует с символами форматирования

    [UNICODE]
    .



    Двунаправленность и кодировка символов
    . В соответствии с

    [RFC1555]
    и [RFC1556], существуют несколько специальных соглашений об использовании значений параметра "charset" для обозначения двунаправленного представления в MIME mail, в особенности для различения визуального, подразумеваемого, и явного указания направления. Значение параметра "ISO-8859-8" (для еврейского языка) обозначает визуальное кодирование, "ISO-8859-8-i" обозначает подразумеваемую двунаправленность и "ISO-8859-8-e" обозначает явную двунаправленность.

    Поскольку HTML использует двунаправленный алгоритм Unicode, соответствующие документы, кодированные с использованием ISO 8859-8, должны быть помечены как "ISO-8859-8-i". Явный контроль направления также возможен в HTML, но он не может быть выражен в ISO 8859-8, так что "ISO-8859-8-e" не должен использоваться.

    Значение "ISO-8859-8" подразумевает, что документ сформатирован визуально, с потерей некоторой разметки (такой как TABLE с правым выравниванием и запретом переноса слов), чтобы обеспечить верное отображение в более старых ПА, не обрабатывающих двунаправленность. Такие документы не соответствуют настоящей спецификации. При необходимости они могут быть оформлены в соответствии с настоящей спецификацией (и одновременно будут корректно отображаться в более старых ПА) путём добавления разметки BDO

    там, где это необходимо. В противоположность уже сказанному в [RFC1555]

    и [RFC1556], ISO-8859-6 (арабский язык) визуально не упорядочивается.


    Содержание раздела