[Из песочницы] Смотря на код с закрытыми глазами
От переводчика Это статья — перевод блогозаписи Флориана Бейджерса, слепого программиста из Нидерландов. Перевод любительский, поэтому прошу указывать на ошибки и критиковать.Я не нашёл корректного перевода слова accessibility, поэтому перевёл его как доступность. Если есть вариант получше — предложите, пожалуйста.
Почему сделал перевод? Я наткнулся на опрос на Quora.com «Как программируют слабовидящие программисты?». Ответы людей меня впечатлили, а блогозапись Флориана показалась наилучшим вариантом для введения в этот важный вопрос.
Я — программист. А ещё я слеп. Слеп, как крот, как говорится. Таков я от рождения.Когда я говорю об этом своим товарищам, то те из них, у кого никогда не было проблем со зрением, обычно задают один из трёх вопросов:
Как же ты тогда можешь читать то, что я пишу? Ого. А как ты тогда можешь кодить? Или — самый популярный вопрос — А ты видишь сны? Мне задают эти вопросы снова и снова. Поэтому в этой блогозаписи я хочу на них ответить. Я попытаюсь нарисовать картинку для тех из вас, кто интересуется доступностью и тем, как слепые люди пользуются компьютером, кодят и выполняют другие работы в 21 веке.Это я: Флориан Бэйджэрс, или Zersiax, как меня знают в кодерских кругах. Мне сказали что я здесь хорошо получился.Как ты можешь читать то, что я написал? Я люблю этот вопрос, потому что он позволяет мне сразу же объяснить, как слепые люди пользуются компьютером.У многих людей сложилось впечатление, что слепые могут пользоваться только особыми, специально адаптированными компьютерами. Так думают даже некоторые из моих знакомых, у которых есть проблемы со зрением.
Позвольте мне развеять это заблуждение прямо здесь и сейчас. Сейчас я печатаю этот текст на обычном ноутбуке Dell Inspirion 15r SE, который можно купить в любом компьютерном магазине, продающем не самые новые ноутбуки. На нём запущена Windows 8 (я её не выбирал, но заменять её слишком проблематично из-за UEFI). Для подготовки его к использованию я всего лишь установил туда NVDA — экранный диктор с открытым исходным кодом.
Экранный диктор обычно просто читает вслух то, что на экране. Он сообщает вам текстовое содержание экрана синтезированным (похожим на Siri) голосом. Экранный диктор также позволяет работать с дисплеем Брайля — устройством вывода для чтения на ощупь.
Дэвид Стрэтэйрн играет слепого хакера и телефонного фрика Эрвина Эмори по прозвищу Whistler в триллере 1992 года «Тихушники». Его персонаж пользуется компьютером с помощью дисплея Брайля.
Это — вся адаптация, которая нужна слепому для пользования компьютером. Я могу делать многое из того, что вы, скорее всего, считаете невозможным для слепого человека. Например:
Лазить по вебу с помощью Firefox. Писать отчёты в Microsoft Word и форматировать их согласно требованиям колледжских преподавателей к оформлению текстов. Писать потрясающие блогозаписи вроде этой. Записывать, править, микшировать и публиковать аудио (моё хобби — пение и запись музыки). Пользоваться программами для работы со звуком вроде Reaper, Goldwave, Audacity и Sonar. Разрабатывать сайты, используя Eclipse, Visual Studio (ироничное названние) и старый добрый Notepad++. Я перечисляю все эти распространённые технологии чтобы показать: я могу ими пользоваться точно так же, как и люди, у которых нет проблем со зрением.Если вы будете писать очередное масштабное приложение со сногсшибательным интерфейсом и великолепным рабочим процессом, я скромно прошу вас убедиться в том, что его доступность включена в план. В наши дни нет никакой причины не пользоваться инструментарием доступности интерфейса. Это намного проще, чем вы думаете. Да, это включает Android Activities, iOS NsViews и HTML5-виджеты, о которых вы, возможно, подумали.
Я вступил во Free Code Camp несколько недель назад и мне там очень понравилось. Последние несколько лет я учился по специальности «Информатика» и провалил семестр, включавший много работы со стеком MEAN. И я очень рад, что нашёл такое замечательное сообщество, в котором можно состоять и учиться. Уверен — в этот раз я с честью закончу этот семестр.
К сожалению, я столкнулся с проблемами с доступностью, когда работал по известным обучающим материалам по Dash от General Assembly. Эти материалы, несомненно, хороши, но для меня они были совершенно нечитаемы, так как авторы решили вставить все тексты картинками. Текстовое описание картинок, с которым могли бы работать экранные дикторы, было минимально. К сожалению, экранные дикторы могут читать только текстовые описания. Они не столь умны, чтобы распознавать графику.
К счастью, несколько товарищей на Free Code Camp посочувствовали моему положению и добровольно транскрибировали для меня все слайды. Эти люди меня «приятно поразили», как выражаются наши дорогие западные соседи за морем. Я очень благодарен за работу, которую они проделали для моего обучения. Вы знаете, о ком я говорю. Большое вам спасибо!
Но… как ты пишешь код? If открывающая скобка x равно пяти закрывающая скобка открывающая фигурная скобка print открывающая скобка кавычка hello world восклицательный знак кавычка закрывающая скобка закрывающая фигурная скобка.
Это то, как я слышу типичный блок «Если» в похожем на Java языке программирования. Довольно подробно, как видите. Я стараюсь отключать упоминания скобок, если мне не нужно специально проверять их расстановку при ловле ошибок, так что я не схожу с ума от довольно многословных описаний знаков препинания. Другие решают эту проблему заменой «открывающей скобки» на что-то вроде «оскоб» или «начало», просто чтобы сохранить несколько миллисекунд. Скорость озвучки текста очень высока для непривычных к этому людей.Ссылка на звукозапись «Zersiax’s Screen Reader»
Для тех из вас, кто ничего не понял: это то, как мой экранный диктор читает первую часть этой блогозаписи, которую я пишу в NotePad++.
Так что то, как я пишу код, не сильно отличается от того, как пишут код другие. Я научился слепой печати и мысленно представляю себе код, так что могу работать с ним точно так же, как и вы. Единственное отличие в том, что я почти не использую мышь. Вместо неё я стараюсь пользоваться горячими клавишами и командной строкой.
К сожалению, в этой области всё ещё не совсем хорошо. Ведущие инструменты, которыми пользуются кодеры, такие, как редактор IntelliJ, а также его подвиды (PHPStorm, WebStorm, PyCharm) совершенно не доступны просто из-за того, что их разработчики не придерживались руководств по соблюдению доступности. Они не подготовили для экранных дикторов текстовые пометки или описания, с которыми те могли бы работать. Это же касается приложений вроде SourceTree, которое хоть постепенно и становится лучше, но использовать его всё ещё очень неудобно.
Поэтому мне приходится искать учебные материалы, программы и инструменты, которые доступны, а не просто брать и использовать подходящую среду разработки.
Как ты видишь сны? Я обещал ответить на все три вопроса, поэтому отвечу и на этот. Но не ожидайте чего-то из ряда вон выходящего.Я вижу сны так же, как и вы. Мой мозг транслирует опыт и события, произошедшие со мной за день, в сны, которые я вижу ночью. Разница в том, что я ничего в них не вижу.
Вместо этого я слышу, обоняю и осязаю всё, как и в жизни. Причина проста: сны основываются на ранее полученных визуальных образах, создавая из них визуальный ряд сна. Так как я слеп с рождения, то в моей памяти нет визуальных образов, на которых можно основываться. Визуальная состоявляющая моих снов получает большую жирную 404 ошибку: изображение не найдено.
Покодить со мной Добровольцы с Free Code Camp попросили меня написать эту блогозапись, чтобы поделиться со всем миром моим способом работы. После того радушного приёма, который я получил в этом сообщества, я был только рад её написать. Я действительно надеюсь что вы извлечёте из этого пользу.Я могу говорить об этом часами и эта статья уже переросла размер, который я изначально запланировал. Если у вас есть вопросы, найдите меня в чат-комнатах Free Code Camp. Там я под ником Zersiax, под ним же я в Твиттере. Спасибо за чтение. Увидимся! (Извините, не смог удержаться и не сказать этого).