Unicode для мира, Multi-Device

Время назад, я работал на веб-сайте, что потребовало ряда иконок.”Нет проблем”, не подумал я.”Я знаю, как с этим справиться.Я буду использовать @font-face набор иконок для экранов с высоким разрешением.Это будет один файл, чтобы уменьшить HTTP запросов, и я буду включать только те значки, которые мне нужны, чтобы уменьшить размер файла “

“Я даже использовать символ Unicode в качестве основы иконы, так что если @font-face не поддерживается, то пользователь будет видеть что-то вроде предполагаемого иконы.” Я чувствовал себя очень доволен собой .

То есть, пока я не столкнулся страницу в лаборатории устройства .

На некоторых устройствах количество икон не показывает.Тем не менее, на тех же устройствах, а другие были, так ясно, что она не была @font-face Вопрос.Он должен был основной Unicode .

Что делать,

  • Я мог бы использовать лигатуры для @font-face значка.Они прекрасно подходят для доступности, но не поддерживаются в Internet Explorer 9 или выше .
  • Я мог бы использовать по умолчанию “пустые” символы Unicode ( PUA ranges 1 ), какие приложения, такие как IcoMoon умолчанию в.Но, опять же, Internet Explorer имеет issues 2 , и если пользователь установил шрифт по умолчанию (если они есть дислексией, например), то они не увидят ничего значимого .
  • Есть некоторые веские аргументы в пользу использования SVG 3 , но мне нравится гибкость @font-face: Изменение цвета при наведении очень легко, например, и @font-face Иконкивизуализации с субпиксельной сглаживания, в то время как SVG использует оттенки серого .

Я был счастлив с основными персонажами Unicode, потому что они дали хороший запасной вариант для пользователей на Windows Phone 7, Opera Mini и старые BlackBerrys, которые не поддерживают @font-face.Вместо этого, я хотел определить, какие Unicode символов я мог спокойно использовать .

Итак, я начал делать некоторые испытания.И это привело к еще какое-то испытания, и после некоторых более .

Пока я смотрел на 107 символов Unicode на 78 устройств и 5 чтения с экрана.Я буду честен — это не самое веселое я когда-либо имел.Итак, я спасу вас от неприятностей и поделиться некоторыми из проблем и потенциальных решений, которые я столкнулся .

Зачем беспокоиться

Но прежде чем мы перейдем к тому, что, давайте просто убедитесь, что это все стоит .

Why you should bother about unicode. 4
Слева направо: @font-face значок с помощью лигатуры в Chrome;@font-face значок с помощью лигатуры в Internet Explorer 9 (да-да, ничего там);@font-face значок с помощью запасного Unicode в Opera Mini;@font-face значок с помощью PUA кода точки Opera Mini (да-да, ничего там).( Большая version 5 )

SVG and @fontface subpixel rendering. 6
Слева: SVG с оттенками серого сглаживания.Справа: @font-face значок с субпиксельной рендеринга.(Как в Firefox).( Большая version 7 )

(Да, и если я слышу ропот “? Opera Mini Никто не использует, что” то считайте, что есть 70000000 больше Opera Mini пользователей, чем iPads 8 . В мире)

На мой взгляд, используется базовый характер Unicode кажется самым надежным подходом, предлагая визуальную икону в максимальному количеству устройств и браузеров .

How Do You Do It, Тогда

Если вы не использовали символы Unicode с @font-face икон, не волнуйтесь.Такие инструменты, как IcoMoon 9 сделать его простым.Когда вы выбрали значки, которые вы хотите использовать, и нажал генерировать шрифт, вы увидите страницу, которая показывает все выбранные вами значки с их названиями и код точки Unicode, что они будут отображаться в.Это, как правило, что-то вроде e600, и это число, что вам нужно, чтобы заменить шестнадцатеричное значение выбранного вами персонажа Unicode .

Tools like IcoMoon make it simple to generate icon fonts. 10
инструменты, как IcoMoon сделать его простым для создания иконок шрифты.( Большая version 11 )

Итак, как вы знаете, какой Unicode символ использовать?Вы можете пройти через один из многих ресурсов, которые перечисляют все 110 000 знаков, но вы, вероятно, есть более важные дела, чтобы сделать. Shapecatcher 43 12 делает жизнь немного легче: Нарисуйте фигуру вы после этого, и он будет возвращать список похожие символы .

Shapecatcher will return a selection of similar looking icons for you. 13
Shapecatcher вернет выбор похожий, иконки для вас.( Большая version 14 )

Выберите тот, который вам больше нравится, скопируйте шестнадцатеричное значение Unicode, и вставьте его в IcoMoon.После того как вы сделали это для всех ваших иконок, скачать @font-face пакет как обычный .

Итак, какие символы вы должны использовать

Ну, мне придется отложить до ответа Джереми Кейта за все о Сети: “. Это depends 15 ” В ходе тестирования, поддержка любого данного символа Unicode меняется чрезвычайно (ипо “поддержке”, я имею в виду, что либо @font-face появляется значок, или, что представляется основной Unicode символ, а не пользователя, видя пустую прямоугольник или знак вопроса или вообще ничего).Даже Unicode символов в одном “ block 16 ” связанных символов часто имеют совершенно разные уровни поддержки .

Но я могу предоставить небольшую помощь.После того, как вы знаете, какой Unicode символ, который вы хотите использовать, запустить его через Unify 17 , которая даст вам счет поддержки на основе устройств, которые я проверил с до сих пор .

Если ты счастлив ни с @font-face значок или символ Unicode отображается, вы должны увидеть очень высокий уровень поддержки.Некоторые иконки работать на все, что я испытывал до сих пор .

Большой Исключение составляет Emoji characters 18 ,который я хотел бы держаться подальше от.Около половины из устройств, которые я проверил на не показывают @font-face значок, и многие ничего не показывают вообще осмысленным.Кроме того, IOS заменяет их фиксированного размера цветных графики, так пытаясь расширить их font-size не будет работать .

Variation in Emoji characters. 19
Изменение Emoji символов.Слева направо: Firefox (Windows 7), Chrome (Windows 7), Chrome (Android 4.2.1), Opera (Windows 7) и Safari (IOS).( Большая version 20 )

Кроме того, если устройство может оказывать характер Unicode, то, как правило, также быть в состоянии вынести @font-face значок, который использует этот символ.Таким образом, вы должны решить, на компромисс: Использование шрифта значок дает вам больше контроля над дизайном, но тогда вы бы добавлять к массе странице и задержки оказание значок, пока шрифт не будет загружен .

Если вы используете только символ Unicode напрямую, то будьте готовы к различным визуальных стилей.Даже на том же компьютере, браузеры могут оказать тот же характер, совершенно по-разному .

Unicode character 260E shown in Firefox, Chrome, Internet Explorer and Opera on the same Windows 7 machine, and on iOS. 21
Unicode символ 260E показано на Firefox, Chrome, Internet Explorer и Opera на той же Windows 7 машине, так и на IOS.( Большая version 22 )

Во многих проектах, последовательность и контроль вы получаете от использования @font-face значок стоит.Ввод только значки, которые вы должны в файле шрифта позволит свести к минимуму время загрузки .

Сказать что-либо более о @font-face иконок бессмысленно, потому что Зак Leatherman написал такие отлично и хорошо проработанный article 23 .

Accessibility

Зак выглядит по глубине в доступностипоследствия использования значков тем самым, и я хотел бы добавить несколько мыслей .

Есть две основные проблемы здесь: чтения с экрана либо полностью игнорируют значок (который оставил бы пользователь не подозревая, что там что-то есть, чтобы взаимодействовать с) или объявить что-то, казалось бы, не имеет значения.Например, если вы использовали символ Unicode 2261 для значка “Бюргер”, это будет либо игнорироваться или быть объявлена ​​как “равно” или “, идентичные”, в зависимости от программы чтения с экрана.Ни один из них поможет пользователю понять, что этот элемент делает .

Лучший подход зависит от того, что икона для.Если оно лишь добавляет визуальный процветать в текстовой метки или заголовка, то я рекомендовал бы скрывая значок чтения с экрана.В этом случае, вместо добавления иконок шрифты непосредственно к элементу стандартным образом (т.е. с помощью :before или :after CSS псевдо-элемент), добавить его в промежутке внутри элемента.Таким образом, вы можете добавить aria-hidden="true" пролету, что позволит предотвратить его от объявил в разумное количество экрана readers 24 .

<span aria-hidden="true">≡</span> Menu

Однако, если значок будет использоваться сама по себе, без нибудь еще, чтобы обеспечить значение или контекст, то я рекомендовал бы скрывая значок, как и раньше, но добавив текстовую метку, которая скрыта визуально.Это даст подсказку, что есть что-то взаимодействовать с .

<style>
    .visiblyHidden {
    /* http://css-tricks.com/places-its-tempting-to-use-display-none-but-dont/ */
        position: absolute;
        overflow: hidden;
        clip: rect(0 0 0 0);
        height: 1px; width: 1px;
        margin: -1px; padding: 0; border: 0;
    }
</style>

<span aria-hidden="true"> ≡ </span><span class="visiblyHidden">menu</span>

Ли font-family Помощь

Я слышал рекомендацию, что вы должны включать в себя шрифты, такие как Arial Unicode MS, в семейство шрифтов стек, который используется для отображения символов Unicode, но это не гарантирует, что появится символ для всех.Если браузер не может найти шрифт с требуемым характером Unicode из тех, кого вы перечислили в font-family декларации, то он будет пытаться найти какой-либо шрифт в операционной системе, которая будет отображать его .

Консистенция трудно найти, хотя, потому что это будет зависеть от шрифтов, доступных на этом конкретном устройстве и в браузере используется.Производители браузеров бесплатно искать все найденные шрифты Однако, по их мнению лучше всего — и ради производительности, брауз …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.