«У меня была дислексия еще до того, как кто-то узнал, что такое дислексия. Меня называли «медленным». Это ужасное чувство — думать о себе как о «медленном» — это ужасно». — Роберт Бентон
Почему ?
Посмотрите на приведенную выше цитату и примите во внимание тот факт, что, по оценкам, каждый десятый человек страдает дислексией. У меня дислексия, и я много говорил о программировании и дислексии, но когда я пришел на Teamwork.com, многие коды были для меня новыми, поэтому я создал небольшое расширение для Chrome, чтобы снова начать работать с кодом. они используют здесь, наряду с помощью людям с дислексией.
15 января 2015 года я создал следующее приложение Google Chrome под названием Helperbird. Он делает следующее:
Helper Bird — это расширение, которое заменяет все шрифты на любой веб-странице отмеченным наградами шрифтом «OpenDyslexic и делает страницу более удобной для чтения. Вы можете включать и выключать его в любое время. Помощь людям с дислексией. Теперь вы можете изменить размер шрифта!»
Шрифт
Он использует шрифт OpenDyslexic с открытым исходным кодом, который был создан, чтобы помочь с некоторыми симптомами дислексии. Буквы имеют утяжеленные нижние части для указания направления. Вы можете быстро определить, какая часть буквы опущена, что помогает распознать правильную букву, а иногда помогает удержать мозг от вращения букв. Последовательно утяжеленные нижние части также могут помочь усилить строку текста. Уникальная форма каждой буквы может помочь избежать путаницы при перелистывании и замене. Как вы можете видеть ниже.
Проблема
Одна из проблем с существующими приложениями, подобными этому, в магазине Chrome заключается в том, что вы не можете отключить шрифт, полезная функция, если семья использует общий компьютер и не хочет использовать шрифт. Итак, я добавил код, чтобы исправить это и упростить использование, но с сохранением логической переменной в локальном хранилище, независимо от того, включена она или выключена.
Я запустил его в январе 2015 года, а затем забыл о нем до августа 2015 года, когда у него было более 2000 пользователей, и я был в шоке.
Постройте его, и они придут
Он построен с использованием следующих инструментов: Angular JS и Material Bootstrap, а также Gulp, который я изучил, работая в команде.
Он настроен так, что у меня есть файл package.json:
{ “name”: “helperbird”, “version”: “1.1.1”, “manifest_version”: 2, “description”: “Format pages using the OpenDyslexic font”, “browser_action”: { “default_popup”: “index.html” }, “permissions”: [“tabs”, “*://*/*”, “http://*/*", “https://*/*", “<all_urls>”, “storage”], “content_scripts”: [{ “matches”: [“*://*/*”, “file:///*/*”], “exclude_globs”: [“*://docs.google.com/*”], “js”: [“assets/dist/js/system.min.js”], “all_frames”: true }], “web_accessible_resources”: [“/assets/dist/fonts/OpenDyslexic-Bold.otf”, “/assets/dist/fonts/OpenDyslexic-BoldItalic.otf”, “/assets/dist/fonts/OpenDyslexic-Italic.otf”, “/assets/dist/fonts/OpenDyslexic-Regular.otf”, “/assets/dist/css/opendyslexic/accesibility.min.css”] }
Строка с «assets/dist/js/system.min.js» позволяет мне вызывать функции внутри этого system.min.js для каждой вкладки, где я запрашиваю разрешения, связанные с каждой вкладкой, которая есть у пользователя, и локальное хранилище в Chrome для хранения настройки.
Это значит, что я могу изменить шрифт только на той вкладке, которую хочет пользователь, и отключить/включить ее на других.
Итак, изучив основные функции файлов system.min.js:
function turnOffOpenDyslexic() { if (document.getElementById(“opendyslexic”) != null) { elem = document.getElementById(“opendyslexic”); elem.parentNode.removeChild(elem); (document.head || document.documentElement).removeChild(elem); reloadPage(); } }
Это вводит следующий CSS (его фрагмент) в текущую веб-страницу, которую просматривает пользователь, переопределяет шрифт и перезагружает страницу.
@font-face { font-family: “opendyslexicmono”; src: url(‘chrome-extension://__MSG_@@extension_id__/assets/dist/fonts/OpenDyslexicMono-Regular.otf’); font-weight: normal; font-style: normal; } html { color: rgb(25, 26, 66); font-family: opendyslexic; } p:nth-child(even), li:nth-child(even) { opacity: background-color: rgba(0, 0, 0, 0.03); } p:hover, li:hover { background-color: rgba(0, 0, 0, 0.09) !important; } p, a, h1, h2, h3, h4, h5, input, ul, span, font, strong { font-family: opendyslexic; line-height: 150%; } * { font-family: opendyslexic; } pre, code { font-family: opendyslexicmono !important; line-height: 150%; } .ace_text-input, .prettyprint { font-family: opendyslexicmono !important; } .original-tweet { background-color: #fff !important; } input, textarea { font-family: opendyslexic !important; }
Я делаю то же самое для изменения размера шрифта; это позволяет пользователю вводить размер шрифта и изменять его при нажатии клавиши. Это делает то же самое, что и изменение стиля шрифта.
function turnOnChangeFont(fontSize) { style = document.createElement(‘style’); style.setAttribute(“id”, “helperColor”); style.innerHTML = “p,span,li,a{font-size:” + fontSize + “px!important;}”; (document.head || document.documentElement).appendChild(style); }
В целом код простой, но эффективный. Эффект, который это произвело, и сообщения, которые я получил от пользователей, сделали это немного забавным для 24-часового испытания, но оказалось, что жизнь изменилась, в какой-то дрянной манере.
Реакция
Это стало немного странно после того, как меня попросили пригласить поработать над официальным приложением opendyslexic (о существовании которого я не знал) после того, как мою работу заметили. Я, конечно, так и сделал, так как в то время 17 000 человек использовали его с очень негативными отзывами, и люди кричали о том, что я сделал с птицей-помощником.
Поэтому я переделал приложение, используя gulp и Angular JS, так как его не трогали с 2013 года. Отзывы и реакция пользователей были важными, так как отзывы хвалили новые функции, дизайн приложения и исправления ошибок, которые я сделал, за 5 недель пользовательская база выросла. до 26 305. Это привлекло ко мне много внимания со стороны разных компаний и писем от людей, которые считали меня значительным улучшением приложения и добавлением кнопки включения/выключения ❤
Пример до и после можно посмотреть здесь.
До
После
Надеюсь, вам было интересно прочитать, как я разработал расширение для Chrome opendyslexic font и как разные шрифты помогают людям с дислексией.
Смело отправляйте пулл-реквест на птичку-помощника или скачайте из магазина Chrome. Расширение opendyslexic для Chrome и репозиторий находятся здесь.
Помните, что если вы хотите написать сообщение о машинном отделении для командной работы, загляните на нашу страницу вакансий. Вы можете проверить меня в twitter или на github.
Первоначально опубликовано на engineroom.teamwork.com.