Виртуальная клавиатура — это программный компонент, который позволяет вводить символы без использования физических клавиш. [1] Взаимодействие с виртуальной клавиатурой происходит в основном через интерфейс сенсорного экрана , но может происходить и в другой форме в виртуальной или дополненной реальности .
На настольном компьютере виртуальная клавиатура может стать альтернативным механизмом ввода для пользователей с ограниченными возможностями , которые не могут использовать обычную клавиатуру, для двуязычных или многоязычных пользователей, которые часто переключаются между разными наборами символов или алфавитами, что со временем может сбивать с толку. или для пользователей, которым не хватает традиционной клавиатуры. Хотя аппаратные клавиатуры доступны с двойной раскладкой клавиатуры (например , кириллицей /латиницей в различных национальных раскладках), экранная клавиатура обеспечивает удобную замену при работе на разных станциях или на ноутбуках, которые редко имеют двойную раскладку.
Виртуальные клавиатуры можно классифицировать по следующим аспектам:
В Интернете были созданы различные виртуальные клавиатуры JavaScript , позволяющие пользователям вводить текст на своих языках на иностранных клавиатурах, особенно в интернет-кафе. Мультитач- экраны позволяют создавать виртуальные аккордовые клавиатуры для планшетных компьютеров , [8] сенсорных экранов, тачпадов и проводных перчаток . [9] [10]
Виртуальные клавиатуры обычно используются в качестве метода ввода на экране в устройствах без физической клавиатуры, где для нее нет места, таких как карманный компьютер , персональный цифровой помощник (КПК), планшетный компьютер или мобильный телефон с сенсорным экраном . Текст обычно вводится либо путем нажатия на виртуальную клавиатуру, либо путем ведения пальца. [11] Виртуальные клавиатуры также используются в качестве функции программного обеспечения эмуляции для систем, которые имеют меньше кнопок, чем клавиатура компьютера.
Четыре основных подхода к вводу текста в КПК : виртуальные клавиатуры, управляемые стилусом, внешние USB-клавиатуры, рукописные клавиатуры и распознавание штрихов. Многие ранние КПК не были ориентированы в первую очередь на виртуальные клавиатуры. Подход Microsoft к мобильной операционной системе заключался в имитации полностью функциональной клавиатуры, что приводило к слегка перегруженной раскладке клавиатуры. [12] Основной проблемой, с которой сталкивались ранние КПК, была поддержка технологии мультитач и, как следствие, проблемы с удобством использования для пользователя.
Когда Apple представила первый iPhone в 2007 году, решение не использовать физическую клавиатуру было воспринято как ущерб устройству. [13] Однако Apple привнесла в свое новое устройство технологию мультитач , что позволило им преодолеть проблемы с удобством использования КПК. Шаблон дизайна виртуальной клавиатуры Apple сегодня стал стандартом для мобильных устройств.
Обе наиболее распространенные мобильные операционные системы, Android и iOS , дают сообществу разработчиков возможность индивидуально разрабатывать собственные виртуальные клавиатуры.
Android SDK предоставляет так называемый InputMethodService . [14] Этот сервис предоставляет стандартную реализацию метода ввода, из которой можно извлечь окончательные реализации и настроить их, что позволяет сообществу разработчиков Android реализовать свои собственные раскладки клавиатуры. Служба InputMethodService поставляется вместе с ним в представлении с клавиатурой. [15] Хотя служба InputMethodService может использоваться для настройки ввода с помощью клавиш и жестов, класс Keyboard загружает XML- описание клавиатуры и сохраняет атрибуты клавиш. [16]
В результате на Android- устройство можно установить разные версии клавиатуры , а клавиатура — это всего лишь приложение, наиболее часто скачиваемым среди которых являются Gboard и SwiftKey ; Возможна простая активация через меню настроек Android. [17]
Apple также предоставляет сообществу возможность разрабатывать собственные клавиатуры, но не предоставляет доступа к словарю или общим настройкам клавиатуры. Далее iOS автоматически переключается между системной и пользовательской клавиатурой, если пользователь вводит текст в поле ввода текста. [18] [19]
UIInputViewController — это основной контроллер представления для пользовательского расширения приложения клавиатуры. Этот контроллер предоставляет различные методы реализации пользовательской клавиатуры, такие как пользовательский интерфейс для пользовательской клавиатуры, получение дополнительного словаря или изменение основного языка пользовательской клавиатуры. [20]
Помимо классической реализации виртуальной клавиатуры Android , iOS и пользовательские клавиатуры, такие как, например, SwiftKey , предоставляют различные функции для повышения удобства использования и эффективности своих клавиатур.
Платформа Android предлагает структуру проверки орфографии, которая дает возможность реализовать и получить доступ к проверке орфографии в самом приложении. Платформа — это один из API текстовых служб , предлагаемых платформой Android. На основе предоставленного текста объект сеанса возвращает предложения по написанию, созданные средством проверки правописания. [21] [22]
iOS использует класс UITextChecker, объект, используемый для проверки строки (обычно текста документа) на наличие слов с ошибками, широко известный как автокоррекция Apple. Проверки орфографии UITextChecker используют лексику для данного языка. Ему можно приказать игнорировать определенные слова при проверке орфографии определенного документа, и он может изучать новые слова, которые добавляют эти слова в словарь. [23]
Пользователи могут добавить собственный словарь терминов из белого списка , которые обрабатываются автокоррекцией как обычные слова, и указать «псевдонимы» или «текстовые ярлыки», где ввод указанной текстовой строки приводит к ее замене целевой текстовой строкой. или целевая текстовая строка отображается в виде предложения. Первое означает, что они не заменяются другими терминами, но могут быть исправлены из других терминов. Возможно, можно исключить существующие нежелательные предложения. [24] [25]
Различные научные работы начала 2000-х годов еще до изобретения смартфонов показали, что предсказание слов на основе того, что печатает пользователь, очень помогает увеличить скорость набора текста. [26] [27] В начале разработки этой функции клавиатуры прогнозирование в основном основывалось на статических словарях. Google реализовал метод прогнозирования в 2013 году в Android 4.4. Эта разработка в основном осуществлялась сторонними поставщиками клавиатур, такими как SwiftKey и Swype . [28] Оба предоставляют мощную систему поиска слов с соответствующими базами данных. [29] В 2014 году Apple представила iOS 8 [30] , которая включает новую функцию интеллектуального набора текста под названием «Быстрый ввод», которая отображает подсказки слов над клавиатурой по мере того, как пользователь печатает.
iOS и Android позволяют разработчикам заменять клавиатуру собственными приложениями для клавиатуры. Это привело к экспериментам и появлению новых функций, таких как функция набора текста с помощью жестов, которая появилась на официальной клавиатуре Android после того, как зарекомендовала себя на клавиатурах сторонних производителей. Исследования самой Google подтвердили, что набор текста с помощью жестов увеличивает скорость набора текста на 22% и снижает частоту ошибок почти до 0%. [31] Google также показала, что метод набора текста с помощью жестов также полезен на умных часах. Их научные исследования в основном основаны на исследованиях И. Скотта Маккензи и статьях о моделировании прикосновения пальцев с помощью закона Фитца.
Тактильная обратная связь обеспечивает тактильное подтверждение того, что клавиша была успешно активирована, т.е. пользователь слышит и чувствует «щелчок» при нажатии клавиши. Используя гистерезис , можно в еще большей степени имитировать ощущение физической клавиши. В этом случае сначала раздается «щелчок», который слышен и ощущается при нажатии виртуальной клавиши, но затем, когда давление пальца уменьшается после нажатия клавиши, раздается дальнейший звук «отщелкивания» и ощущение, как будто физическая клавиша возвращается в исходное ненажатое состояние. Такое поведение объясняется в статье Алекса Онищака и Скотта Маккензи 2004 года «Сравнение двух методов ввода для клавиатур на мобильных устройствах», в которой впервые была представлена тактильная обратная связь с гистерезисом на виртуальной клавиатуре. [32]
Клавиатуры нужны в разных цифровых сферах. Виртуальные клавиатуры нужны не только смартфонам , но и устройства, создающие виртуальные миры, например, очки виртуальной реальности или дополненной реальности , должны обеспечивать возможность ввода текста.
Оптическая виртуальная клавиатура была изобретена и запатентована инженерами IBM в 1992 году. [ 33] Она оптически обнаруживает и анализирует движения рук и пальцев человека и интерпретирует их как операции на физически несуществующем устройстве ввода, таком как поверхность с нарисованными клавишами. Таким образом, он позволяет эмулировать неограниченное количество типов устройств ввода с ручным управлением, таких как мышь или клавиатура. Все механические блоки ввода могут быть заменены такими виртуальными устройствами, оптимизированными под текущее применение и физиологию пользователя с сохранением скорости, простоты и однозначности ручного ввода данных.
Одним из примеров этой технологии является «Тип селфи» — технология клавиатуры для мобильных телефонов, разработанная компанией Samsung Electronics . Предполагалось использовать фронтальную камеру (селфи-камеру) для отслеживания пальцев пользователя, позволяя пользователю печатать на «невидимой клавиатуре» на столе или другой поверхности перед телефоном. [34] [35] Он был представлен на выставке Consumer Electronics Show 2020 [36] [37] [38] и должен был быть представлен в том же году, но этого не произошло.
Основная идея виртуальной клавиатуры в среде дополненной реальности — предоставить пользователю возможность ввода текста. Распространенный подход — преобразовать плоскую клавиатуру в дополненную реальность, например, с помощью Unity TouchScreenKeyboard. Microsoft HoloLens позволяет пользователю указывать на буквы на клавиатуре, двигая головой . [39]
Другой подход был исследован корейской лабораторией KJIST U-VR в 2003 году. Они предложили использовать носимые устройства для отслеживания движения пальцев, чтобы заменить физическую клавиатуру виртуальной. Они также пытались предоставить пользователю аудиовизуальную обратную связь при нажатии клавиши. Основная идея заключалась в том, чтобы предоставить пользователю более естественный способ ввода текста, основанный на том, к чему он привык. [40]
Magic Leap 1 от Magic Leap реализует виртуальную клавиатуру с дополненной реальностью. [41]
Задача, как и в дополненной реальности , состоит в том, чтобы дать пользователю возможность вводить текст в полностью виртуальной среде. Одна большая проблема заключается в том, что большинство систем дополненной реальности на рынке не отслеживают руки пользователя. Многие доступные системы предоставляют возможность указывать на буквы. [42]
В сентябре 2016 года Google выпустила приложение виртуальной клавиатуры для своей гарнитуры виртуальной реальности Daydream [43] . Чтобы ввести текст, пользователь может указать на определенные буквы с помощью контроллера Daydream. [44]
В феврале 2017 года Logitech представила экспериментальный подход к переносу своих клавиатур в виртуальную среду. С помощью Vive Tracker и игровой клавиатуры Logitech G можно точно отслеживать каждое движение пальца, не надев никаких перчаток. 50 таких пакетов были отправлены эксклюзивным разработчикам, что позволило им в сочетании с комплектом разработчиков BRIDGE от Logitech протестировать и поэкспериментировать с новой технологией. [45] [46]
В некоторых случаях можно использовать виртуальные клавиатуры, чтобы снизить риск регистрации нажатий клавиш . [47] Например, служба онлайн-банкинга Westpac использует виртуальную клавиатуру для ввода пароля, как и TreasuryDirect (см. рисунок). Вредоносному ПО сложнее контролировать дисплей и мышь для получения данных, вводимых через виртуальную клавиатуру, чем отслеживать реальные нажатия клавиш. Однако это возможно, например, путем записи снимков экрана через определенные промежутки времени или при каждом щелчке мыши. [48] [49]
Использование экранной клавиатуры, на которой пользователь «печатает» щелчками мыши, может увеличить риск раскрытия пароля при серфинге через плечо , потому что:
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )CS1 maint: несколько имен: список авторов ( ссылка ){{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )CS1 maint: несколько имен: список авторов ( ссылка ){{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )