Почему подсказки GUI не запускаются с клавиатуры? Есть ли серьезная причина, или это просто коллективная слепая зона?
Один аспект, который мне особенно нравится в публикации блогов, — это размышления о том, как подходы и методы менялись со временем. Как идеи, которые были революционными, могут стать обычным явлением, или как те, которые казались прогрессивными, оказались забытыми и бесполезными.
Но в случае поведения всплывающих подсказок за десятилетие не произошло никаких изменений — тогда они были только мышью, а сегодня — такими же.
Первый раз, когда я размышлял над этим вопросом, был в 2004 году, и тогда я ответил написанием JavaScript, который бы заткнул дыру. Это сценарий, который я придумал , и он, безусловно, делает свою работу. Если бы я переписал это сегодня, я бы DOMFocusIn
модель событий между DOMFocusIn
(событие пользовательского интерфейса DOM 2, которое поддерживается в большинстве современных браузеров и пузырьков) и проприетарным событием onactivate
для IE (которое ведет себя как onfocus
, но также и пузырьки ). Важным отличием здесь является то, что стандартное событие onfocus
не должно пузыриться и не происходит в большинстве реализаций (за исключением, в первую очередь, Firefox). Но если мы используем события, предназначенные для всплытия, мы можем реализовать поведение с одним слушателем событий, вместо того, чтобы добавлять слушателя к каждому фокусируемому элементу индивидуально, как это делало мое первоначальное решение.
Я все еще реализую этот сценарий на своем сайте, часто добавляя аналогичную функциональность в новые разрабатываемые приложения, как в личных, так и в клиентских проектах. Например, недавно я работал над обновлениями всех пяти версий CodeBurner — нашего справочного инструмента для веб-разработчиков — и для некоторых из этих сред мне потребовались скриптовые решения. Например, во время выполнения Adobe AIR всплывающие подсказки не создаются для элементов HTML вообще, с помощью мыши или клавиатуры; вместо этого я реализовал более широкое решение, которое реагирует на все такие события.
Однако каждый раз, когда я внедряю решение, ориентированное на фокус, я удивляюсь, почему я все еще вынужден это делать. И если честно, мне тоже интересно, должен ли я. Если в интерфейсах обычно отсутствуют всплывающие подсказки о фокусе, правильно ли для отдельного приложения переопределять эту поведенческую норму и в любом случае реализовывать их?
Несмотря на все императивы, решение JavaScript никогда не может быть так тесно интегрировано, как решение, созданное самой ОС ; это никогда не может быть больше, чем резервное решение.
Позиционирование является проблемой, чтобы привести только один пример, потому что сгенерированные документом элементы не могут выйти за пределы окна. И даже если бы они могли, мы все равно были бы ограничены всплывающими подсказками из элементов документа. Мы не можем предоставить их для кнопок окна или для чего-либо за пределами браузера.
Opera — это один из браузеров, который каким-то образом предлагает подсказки, запускаемые с клавиатуры; например, он показывает всплывающие подсказки, когда они фокусируются с помощью пространственной навигации . Но даже там эти подсказки ограничены отображаемым документом. Если они там хорошая идея, почему они не являются хорошей идеей для самого браузера Chrome?
Итак, за все годы, что операционные системы обладали изощренностью, позволяющей генерировать всплывающие подсказки, а также средой доступности для пользователей, работающих только с клавиатуры, почему эти две функции никогда не объединяются?
Почему всплывающие подсказки остаются функциональностью только мыши?
Если вы хотите узнать больше от Джеймса, подпишитесь на нашу еженедельную техническую новостную рассылку Tech Times .