Клавиатурное управление требует много JS-логики, поэтому мы старались держать его минимальным и добавили только то, что нужно уметь делать на каждой странице с результатами поиска. Например, мы научили её переключаться по сочетанию клавиш на следующие 10 результатов и возвращаться к предыдущим — для этого нужно нажать Alt + > или Alt + < соответственно. Теперь одной кнопкой можно вернуться и в строку поиска, чтобы переформулировать запрос — Esc или Tab.
Также доступен vim-режим, в котором навигация осуществляется не только стрелками, но и клавишами h, j, k, l. Если режим отключен, то при наборе текста курсор сразу попадает в поле ввода и на нём не нужно специально ставить фокус
В процессе работы мы долго думали над тем, каким цветом выделять активные элементы. Если менять только цвет тайтла, то такое изменение почти незаметно, и глазам тяжело следить за переключением. Рамки шумят визуально и скорее раздражают, чем говорят о выделении. В итоге мы выделяем весь блок акцентным цветом, который уже используем в поисковых подсказках и левой колонке.
Одной из сложностей было решение о том, как поступать в случае скролла при переходе на сниппет за пределами видимой части страницы. Было два варианта. Первый — делать доскролл к элементу при каждой смене активного элемента. Второй — при переходе на элемент вне текущего экрана скроллить его как можно дальше, чтобы в итоге общий объем скролла на экране был минимален.
Остановились на нём, так как он быстрее, легче для браузеров и приятней внешне.
Мы добавили к хоткеям возможность открывать страницу в фоновой вкладке, потому что это удобно. Но хотим предупредить, что современные браузеры запрещают несанкционированное открытие попапов, поэтому нужно разрешить Яндексу открывать их при появлении соответствующего предупреждения.
Будем рады, если в комментариях, вы поделитесь с нами своим впечатлениями о работе с горячими клавишами в результатах поиска.
Комментарии (57)
kuber
13.08.2015 17:32+2Надо отметить, что в Google Chrome для перехода по страницам необходимо использовать:
ctrl + > и ctrl + < соответственно.5hrp
13.08.2015 17:47+4Спасибо за отзыв. Мы очень надеемся на фидбек хабра. И если большинству действительно окажется удобней ctrl, то мы признаем ошибку и поменяем модификатор.
Скажу по секрету, что «больше/меньше» тоже работают.Tseikovets
13.08.2015 18:49+2Если помните, до Островов вообще-то уже было CTRL+Вправо и CTRL+Влево. Также делали CTRL+Вниз для функции «Ещё десять».
Ohar
14.08.2015 15:00+1Чудесная возможность, давно её ждал.
Была мысль даже свой велосипед на GreaseMonkey, организовать, т. к. очень нравилось наличие хоткеев у Google.
Сделано очень круто и удобно, спасибо большое.
Но прятать в настройки — вершина неприличия. Я, постоянный пользователь яндексового поиска, узнал о факте существования настроек только из этой статьи.
Вы беспокоитесь что функционал тяжёлый? Ну выполните какой-то быстрый замер производительности и, если она приемлемая, догрузите модуль хоткеев. Если неприемлемая — тогда полагайтесь на настройки.
CaptainFlint
13.08.2015 17:47+2А когда появится возможность полностью отключить перехват клавиш? Из-за перебрасывания в поле поиска становится невозможно пользоваться оперными клавишами 1 и 2 для перехода на следующую/предыдущую вкладку. Ещё год назад писал в поддержку, пообещали передать специалистом, да только воз и ныне там.
5hrp
13.08.2015 18:01-2К сожалению, этого в планах нет. Таких просьб очень мало, поэтому мы не можем уделить им время на проработку.
andreychev
13.08.2015 18:365hrp Антон, как ведёт себя страница при установленных addons.mozilla.org/en-us/firefox/addon/vimperator (или chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb)?
5hrp
13.08.2015 18:53+1Мы не проводили специальных тестов в рамках разработки. Но при этом просили коллег (среди которых есть пользователи этих расширений) попользоваться клавиатурным управлением до включения на всех. В частности, получали отзыв, что если не включать vim-режим, то конфликтов не наблюдается.
Delphinum
13.08.2015 18:42Почему все так активно используют эти «всеклавиатурные» комбинации вида: Ctrl + ->, Esc, Alt + Ctrl + PgDwn — вы попробуйте попользоваться браузером то сами, и сразу поймете, что у вас правая рука (для правшей) постоянно на мыши (если вы не пользуете какими нибудь vimperator), а левая на левой половине клавиатуры. Представьте теперь, что нужно постоянно открывать правую руку от мыши и тянуться ею к стрелкам или другим правосторонним клавишам, а затем обратно руку на мышь. Удобно? Комбинации должны быть в зоне досягаемости левой руки, в идеале, на «asdf».
Tseikovets
13.08.2015 18:47+5Потому, что когда вы только что ввели запрос, у вас обе руки на клавиатуре. Так что это к вам вопрос — зачем вы перенесли руку на мышку после ввода текста.
Первую десятку поисковых результатов также можно сразу открывать с клавиатуры, так как для них прописаны горячие клавиши посредством accesskey.Delphinum
13.08.2015 18:52-1То есть если я введу запрос и положу правую руку на мышь, а левой буду листать результаты, это неудачное решение?
Tseikovets
13.08.2015 19:11+4Это, на мой взгляд, просто странное решение. Раз уж вы всё равно решили размахивать руками и тянуться до мышки, то зачем вам вообще горячие клавиши — кликайте мышкой на графическую кнопку перехода.
engine9
14.08.2015 13:31-1Несколько десятков лет назад профессиональным пользователям ЭВМ приходилось совершать намного более сложные манипуляции: менять перфоленты или кассеты, наклоняться к полкам, приносить и уносить в место хранения. Профит очевиден: профилактика гиподинамии и переключение внимания, как следствие отдых. А сейчас руки с клавы на мышку передвинуть видится проблемой. И не говорите о экономии времени.
Ohar
14.08.2015 15:05Несколько десятков тысяч лет назад профессиональных пользователей ЭВМ не существовало. А людям приходилось совершать намного более сложные манипуляции: охотиться на мамонтов или туров, наклоняться к огню, приносить в пещеру еду и уносить мусор. Профит очевиден: профилактика гиподинамии и переключение внимания, как следствие отдых. А сейчас руки с клавы на мышку передвинуть видится проблемой. И не говорите о экономии времени.
engine9
14.08.2015 16:11Замечательно пошутили, именно по этой причине наш организм эволюционно не приспособлен к сидячему образу жизни и работе за компом в частности.
bodqhrohro
14.08.2015 14:17если вы не пользуете какими нибудь vimperator
Или тачпадом/трекпоинтом. Для них не обязательно убирать руки с основной позиции.
bodqhrohro
14.08.2015 09:40-2Зачем это нужно? Те, кто хочет клавиатурное управление, уже давно поставили соответствующее расширение (KeySnail/VimFX/Vimium/Firemacs/Pentadactyl/Vimperator/etc) и имеют его на всех сайтах. В некоторых браузерах хинты вообще из коробки (Qupzilla, Arora, Opera Mini 4). А это баловство какое-то, типа вездесущих кнопок «Вверх». И так приходится блокировать/отключать на Google/DuckDuckGo, у вас хоть отключено по умолчанию и конфликты с вимператором проверяются — и то спасибо.
5hrp
14.08.2015 12:29Два аргумента:
– Мы продумывали клавиатурное управление в контексте поиска, делая его максимально простым и удобным. Это ведь не только таблица «Клавиши – действие», это и скролл, и выделение, и доступность элементов.
– Поддержкой занимаемся мы, а не вы или создатель расширения. В условиях ежедневных обновлений кода серпа это немаловажно.bodqhrohro
14.08.2015 18:02+1максимально простым и удобным
Серьёзно? Даже быстрого перехода к произвольному результату поиска нет. Бегать по ним стрелочками — явно не лучшая идея, даже мышевозня быстрее будет.
серпа
Чего?5hrp
15.08.2015 11:04Все поисковые выдачи устроены так, что релевантные результаты с большой вероятностью оказываются сверху.
К тому же не хотелось вызывать конфликтов с различными расширениями и возможностями браузеров.
Серп = SERP = Search engine results page = Страница с результатами выдачи поискаbodqhrohro
15.08.2015 11:41Ну вот допустим, вмещается на экране пять результатов поиска. Уплыл нужный результат с четвёртой позиции на третью — и пять нажатий (<Tab>jjj<Enter>) превращаются в четыре (<Tab>jj<Enter>). При том, что с хинтами это в любом случае два-три (одно на вызов хинтов и одно-два на выбор хинта). Для первого результата одинаково, т. к. на первые два-три результата хватает однобуквенных хинтов; для последующих хинты эффективнее. Тут ещё, правда, наличие фокуса в поле поиска влияет — может понадобиться на выход из него нажатие потратить ещё.
kahi4
14.08.2015 12:04Фидбэк. В вим-режиме не работает листание страниц по alt+H, alt+L. Mac os, safari v.8. Делает вим-режим неудобным.
temaonline
14.08.2015 12:38Возможно ди сделать горячую клавишу «Перейти к первому результату», или просто сделать кнопку по типу гугловской «I'm feeling lucky» на главной странице?
Tseikovets
14.08.2015 15:16К первому результату вы можете перейти по Alt+1 или Shift+Alt+1 в зависимости от браузера. К первой десятке прописаны accesskey со всеми вытекающими последствиями.
Tseikovets
14.08.2015 15:17К первому результату вы можете перейти по Alt+1 или Shift+Alt+1 в зависимости от браузера. К первой десятке прописаны accesskey со всеми вытекающими последствиями.
temaonline
14.08.2015 16:00ни одно сочетание под Яндекс-браузером не работает. В файрфоксе работает, но в новом окне.
5hrp
14.08.2015 12:46+1Стремление к минимальному набору возможностей очень просит нас не добавлять шорткат «Открыть первый результат», когда есть Tab + Enter.
А можете рассказать, в каких случаях (при каких запросах) полезно иметь кнопку «I'm feeling lucky» на главной?temaonline
14.08.2015 13:31Есть оч.удобная утилита Alfredapp(под win аналог wox) — это что-то вроде системы макросов с быстрым запуском сайтов, программ, скриптов и пр… Там можно настроить макрос, который автоматом кидает на адрес encrypted.google.com/search?q={q}&btnI=I'm+Feeling+Lucky, где q — это строка запроса. Я регулярно ей пользуюсь, чтобы моментально попадать на первый сайт в поисковой выдаче, т.к. я точно знаю, что мне выдаст поисковик, например, по запросам «твиттер Соловьева», «github twitter bootstrap», «жж el-murid».
Гораздо легче запомнить поисковый запрос, чем http-адрес. Это в разы ускоряет работу в целом и поиск информации в частности.bodqhrohro
14.08.2015 14:02Гораздо легче запомнить поисковый запрос, чем http-адрес
Вы гуманитарий? :) ЧПУ для чего повсеместно внедряют? Да и не-ЧПУ зачастую вполне запоминаемы и воспроизводимы.temaonline
14.08.2015 15:36+3Богдан, гуманитарий не значит тупой, а человек — это не прокладка между монитором и стулом. Я верю, что вы все урлы храните в голове и каждое утро компилируете линуху под каждую конкретную задачу заказчика.
ЧПУ — это из другой оперы. Не самой удачной, кстати. О ЧПУ я слышу с начала 2000-х годов, её как мантру повторяют, но только значительного удобства не видно. Лучший способ доступа к информации, которая требуется здесь и сейчас в интернете, — это поисковый запрос. За всю историю интернета ничего лучше не придумали. Большинство пользователей только запрос и запоминают. Это и логично с психологической и физиологической точки зрения, т.к. упорядоченная информация лучше всего усваивается и запоминается.
Verdoga
14.08.2015 20:13+1Идея хорошая, но для меня абсолютно бесполезная. При использовании экранного чтеца эта возможность никак не помогает, потому что этот товарищ не отслеживает никаких перемещений, кроме начала ввода текста, да и чтобы послать команду напрямую браузеру надо нажать другое сочетание клавиш. В FF у меня так и не сработала возможность перехода на следующие десять результатов поиска. В общем отключаем за бесполезностью.
Tseikovets
14.08.2015 21:20+2Ну на вас изначально эта идея и не рассчитывалась. Вам нужно сначала нажимать JAWSKey+3, а уже потом команду перехода по страницам, чтобы избавиться от её перехвата виртуальным курсором. Ну или создайте скрипты для эмуляции этих команд и назначьте на них удобные клавиатурные сочетания JAWS:
; Переход к следующей странице результатов Яндекс
Script YandexNextPage ()
TypeKey («Control+RightArrow»)
EndScript
; Переход к предыдущей странице результатов Яндекс
Script YandexPriorPage ()
TypeKey («Control+LeftArrow»)
EndScript
Но вообще клавиатурное управление до конца под экранные чтецы не оптимизировано, так что пока его вам лучше не включать. Там сейчас серьёзная проблема с табуляцией, которая критична и не только для слепых.
Ostan
15.08.2015 10:31Нумерацию резултатов поиска верните и пунктирную рамочку вокруг только что перейдённой ссылки.
x512
30.08.2015 07:50+1У вас по Tab активность переходит к результатам поиска, однако если перейти на следующую страницу с помощью Ctrl+->, то снова становиться активной строка поиска. Неужели вы думаете, что пользователь переходит на следующую страницу результатов поиска, чтобы изменить текст запроса?
Ohar
01.09.2015 15:18За две недели не встретил этого косяка.
Сначала не понял, почему.
Потом подумал и понял — я просто ни разу не открывал вторую страницу.
SerCe
А почему хоткеи выключены по умолчанию? Представьте боль пользователя, когда он будет пытаться пользоваться привычными хоткеями, сев за другой компьютер.
5hrp
Только лишь из-за размера скриптов. Клавиатурным управлением будет пользоваться малая часть пользователей. Чтобы не грузить лишний код всем остальным, пришлось спрятать за настройку.
mannaro
А вы сделайте еще один хоткей, который будет слать аякс для включения хоткеев :D
Типа Ctrl-Shift-H
5hrp
Можно, конечно же. Но «поставить галочку в настройках» не сильно сложнее, чем «нажать секретный хоткей».
Самое главное, что страдает от такого подхода – вероятность обнаружения. В случае с настройкой она неотличима от нуля.
Если честно, это больше всего нас беспокоит в клавиатурном управлении, и мы еще думаем, что можно сделать, чтобы донести его до большего числа пользователей. Пока же хотели дать возможность пользоваться им тем, кто давно ждёт.
maggg
Идея со специальным хоткеем, включающим всю функциональность — великолепна. Часто вынужден работать на разных машинах. Каждый раз лезть в настройки — это боль.
SerCe
При наличие дополнительного хоткея никто не заставляет убирать галочку из настроек, зато геморроя пользователям в разы меньше, представьте каково это, когда каждый раз на новой машине тебе нужно лезть куда-то в настройки, а если еще и логиниться не желательно…
reji
+1 за специальный хоткей. Можно и рекламировать интересно: «Псс, парень, у нас есть секретный код! Ctrl+Shift+H»
Snowly
Лучше не хоткей, а где-то иконка, на странице поиска. Которая будет включать горячие клавиши и выводить мануал. + это одновременно будет реклама фичи пользователям. Далеко не все ковыряются в настройках.
5hrp
Да, пожалуй, сделаем и хоткей, и иконку с хелпом / включением
SerCe
Казалось бы, несколько keydown listener'ов. Если так жалко буквально пару килобайт (картинки по дефолту в выдаче весят в разы больше), то можно было бы сделать один хоткей, который подружал бы скрипт и включал бы все хоткеи.