Входной праймер

Взаимодействие пользователей в приложении Windows объединяет источники ввода и вывода, такие как мышь, клавиатура, перо, сенсорный ввод и речь. Они также включают режимы и модификаторы, которые позволяют использовать дополнительные возможности, такие как колесико и кнопки мыши, ластик пера и боковые кнопки, сенсорная клавиатура и фоновые службы приложений.

Windows использует контекстную систему взаимодействия, которая в большинстве случаев устраняет необходимость обработки каждого типа входных данных отдельно. Это включает обработку сенсорного ввода, ввода с сенсорной панели, мыши и стилуса как единого типа указателя для поддержки статических жестов, таких как касание или нажатие и удержание, жестов манипуляции, таких как скольжение для панорамирования, а также отображения цифровых чернил.

Ознакомьтесь с каждым типом входного устройства и его поведением, возможностями и ограничениями при паре с определенными форм-факторами. Это поможет вам решить, достаточно ли для вашего приложения стандартных элементов управления и возможностей платформы или следует предусмотреть собственные сценарии взаимодействия.

Краткая сводка

  • Функции ввода Windows включают голосовой ввод, перо, сенсорный ввод, сенсорную панель, клавиатуру, мышь, жесты, геймпад/контроллер и тактильную отдачу.
  • Сенсорный ввод, тачпад, мышь и стилус могут использоваться в рамках единой модели указателя для стандартных действий.
  • Каждый тип входных данных имеет разные сильные стороны. Большинство приложений должны поддерживать несколько типов входных данных, а не только одного.
  • Haptics и text-to-speech — это дополнительные каналы обратной связи, которые повышают ясность и доступность.

Функции ввода на первый взгляд

Функция ввода Основные сценарии Ключевые преимущества Типичные ограничения
Speech Естественный язык, команда и управление, диктовка Взаимодействие без помощи рук, специальные возможности, производительность Качество речи и понимание намерений зависят от среды и разработки приложений
Перо Ввод с помощью пера, аннотирование, точное позиционирование указателя Точность на уровне пикселей, данные о давлении и наклоне, естественный рукописный ввод Пассивные стилусы имеют ограниченные возможности и хуже распознают касание ладони
Трогать Прямая обработка, навигация, запись текста, поддержка рукописного ввода Естественные жесты, взаимодействие с несколькими сенсорными элементами, тактильное чувство Поддержка на устройствах варьируется от отсутствия сенсорного ввода до полной поддержки мультитача
Сенсорный панель Ввод непрямого жеста и точность указателя Хорошо подходит для пользовательского интерфейса, оптимизированного для сенсорного ввода и повышения производительности Непрямые входные данные могут требовать дополнительных возможностей для обнаружения
Keyboard Ввод текста, навигация, команды, специальные возможности Быстрый ввод, широкая поддержка команд, всесторонняя поддержка специальных возможностей Сенсорная клавиатура доступна только для текста и не заменяет полные входные данные команд
Mouse Точное прицеливание и интерфейс с обилием команд Точное управление, клавиши-модификаторы, широкая распространённость Менее естественно для сценариев прямого взаимодействия, чем сенсорное управление
Жест Касание, удержание и жесты манипуляции Поддерживает статические и непрерывные взаимодействия, включая данные инерции Пользовательские жесты могут зависеть от культуры и локали.
Геймпад или контроллер Игровой ввод и навигация в стиле консоли Направление навигации и специализированные игровые элементы управления Лучше всего подходит для узкоспециализированных сценариев, а не для общего ввода текста в задачах продуктивности.
Haptics Подтверждение и обратная связь о границах Усиливает взаимодействие с помощью сенсорной обратной связи Требует поддерживаемого оборудования и должен дополнять визуальные и звуковые подсказки

Как проектировать для нескольких способов ввода

  • Укажите эквивалентные пути для основных действий в типах входных данных, где это возможно.
  • Не полагайтесь только на один способ взаимодействия для критически важных команд.
  • Сохраняйте возможности пользовательского интерфейса, доступные для обнаружения как прямых, так и косвенных входных данных.
  • Проверяйте взаимодействие на реальных конфигурациях оборудования (например, на устройствах только с сенсорным вводом, с клавиатурой и мышью, а также с поддержкой пера).

Speech

Речь — это эффективный и естественный способ взаимодействия людей с приложениями. Это простой и точный способ общения с приложениями и помогает людям оставаться продуктивным и информированным во многих ситуациях.

Речь может дополнять или во многих случаях быть основным типом входных данных в зависимости от устройства пользователя.

Текст в речь (также известный как TTS или синтез речи) используется для информирования или направления пользователя.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

речь

Типичное использование

Существует три режима взаимодействия с речью:

Естественный язык

Естественный язык — это то, как мы регулярно взаимодействуем с людьми. Наша речь различается в зависимости от человека и ситуации, и как правило, понятна. Когда это не так, мы часто используем разные слова и порядок слов, чтобы передать ту же самую идею.

Взаимодействие естественного языка с приложением аналогично: мы говорим с приложением через наше устройство, как если бы это был человек и ожидает, что он будет понимать и реагировать соответствующим образом.

Естественный язык — это наиболее продвинутый способ взаимодействия через речь.

Команда и управление

Команда и управление — это использование словесных команд для активации элементов управления и функций, таких как нажатие кнопки или выбор элемента меню.

Так как команда и управление критически важны для успешного взаимодействия с пользователем, не полагаются на один входной тип. Речь обычно является одним из нескольких вариантов ввода на основе предпочтений пользователя или аппаратных возможностей.

Диктовка

Диктовка — это самый простой метод ввода речи. Каждое высказывание преобразуется в текст.

Диктовка обычно используется, если приложению не нужно понимать смысл или намерение.

Дополнительная информация

Рекомендации по проектированию речи

Перо

Перо (или стилус) может служить указывающим устройством с пиксельной точностью, подобно мыши, и является оптимальным устройством для ввода цифровых чернил.

Note

Существует два типа устройств пера: активные и пассивные.

  • Пассивные пера не содержат электронику и эффективно эмулируют сенсорный ввод от пальца. Для них требуется базовый дисплей устройства, который распознает входные данные на основе давления контакта. Поскольку пользователи часто опирают руку на вводную поверхность во время письма, вводимые данные могут стать искажёнными из-за неудачного распознавания ладони.
  • Активные ручки содержат электронику и могут работать со сложными дисплеями устройств, чтобы обеспечить гораздо более обширные входные данные (включая наведение курсора или данные о близости) для системы и вашего приложения. Отключение ладони стало гораздо более надежным.

Когда мы ссылаемся на устройства пера, мы имеем в виду активные перья, которые предоставляют богатые входные данные и используются в первую очередь для точного рукописного ввода и взаимодействий при указании.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

ручка

Типичное использование

Платформа рукописного ввода Windows вместе с пером предоставляет естественный способ создания рукописных заметок, рисунков и заметок. Платформа поддерживает захват чернильных данных с цифрового планшета, создание этих данных, отображение их в виде чернильных штрихов на выходном устройстве, управление чернильными данными и распознавание рукописного ввода. Помимо захвата пространственных движений пера как пользователь пишет или рисует, ваше приложение также может собирать такие сведения, как давление, форма, цвет и непрозрачность, чтобы предложить пользователям взаимодействие, которое тесно напоминает рисование на бумаге с пером, карандашом или кистью.

Перо и сенсорный ввод различаются тем, что сенсорный ввод может имитировать прямое управление элементами пользовательского интерфейса на экране с помощью жестов пальцами (таких как смахивание, скольжение, перетаскивание и вращение).

Для поддержки этих взаимодействий следует предоставить команды пользовательского интерфейса и возможности взаимодействия, специфичные для пера. Например, используйте кнопки предыдущий и следующий (или + и -), чтобы пользователи могли перелистывать страницы содержимого, а также поворачивать, изменять размер и увеличивать объекты.

Дополнительная информация

Рекомендации по проектированию пера

Трогать

При касании физические жесты с одного или нескольких пальцев могут эмулировать прямые манипуляции с элементами пользовательского интерфейса (например, сдвигом, поворотом, изменением размера или перемещением), служить альтернативным методом ввода (аналогично мышью или перу), или дополнять другие входные данные (например, смещая рукописный штрих, рисуемый пером). Эти тактильные интерфейсы могут обеспечить более естественные, реальные ощущения, так как пользователи взаимодействуют с элементами на экране.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

трогать

Типичное использование

Поддержка сенсорного ввода может значительно отличаться в зависимости от устройства.

Некоторые устройства не поддерживают касание вообще, некоторые устройства поддерживают один сенсорный контакт, а другие поддерживают несколько контактов (два или более контактов).

Большинство устройств, поддерживающих мультитач-ввод, распознают до десяти отдельных одновременных точек касания.

В общем, касание — это:

  • Один пользователь.
  • Не ограничивается ориентацией устройства.
  • Используется для всех взаимодействий, включая ввод текста (сенсорная клавиатура) и рукописный ввод (настроено приложение).

Дополнительная информация

Рекомендации по проектированию сенсорного ввода

Сенсорный панель

Сенсорная панель объединяет как косвенные много сенсорные входные данные, так и точные входные данные на указывающее устройство, например мышь. Это сочетание делает сенсорную панель подходящей как для пользовательского интерфейса, оптимизированного для сенсорного ввода, так и для мелких элементов приложений для повышения производительности.

Поддержка устройств

  • Компьютеры и ноутбуки

тачпад

Типичное использование

Сенсорные панели обычно поддерживают набор жестов сенсорного ввода, которые обеспечивают поддержку сенсорного ввода для прямого управления объектами и пользовательским интерфейсом.

Так как сенсорные панели поддерживают взаимодействие, аналогичное сенсорному интерфейсу, рекомендуется также предоставлять команды пользовательского интерфейса в стиле мыши или возможности, а не полагаться только на поддержку сенсорного ввода. Предоставьте команды пользовательского интерфейса для сенсорной панели или возможности для этих взаимодействий.

Для поддержки этих взаимодействий следует предоставить команды пользовательского интерфейса, относящиеся к мыши, или возможности. Например, используйте кнопки предыдущий и следующий (или + и -), чтобы пользователи могли перелистывать страницы содержимого, а также поворачивать, изменять размер и увеличивать объекты.

Дополнительная информация

Рекомендации по проектированию сенсорной панели

Keyboard

Клавиатура является основным устройством ввода для текста и часто является обязательным для людей с определенными ограниченными возможностями или пользователями, которые считают его более быстрым и эффективным способом взаимодействия с приложением.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

клавиатура

Типичное использование

Пользователи могут взаимодействовать с приложениями Windows с помощью аппаратной клавиатуры и двух программных клавиатур: клавиатуры на экране (OSK) и сенсорной клавиатуры.

OSK — это визуальная программная экранная клавиатура, которую можно использовать вместо физической клавиатуры для набора текста и ввода данных с помощью сенсорного ввода, мыши, пера/стилуса или другого устройства указания (сенсорный экран не требуется). OSK предоставляется для систем, не имеющих физической клавиатуры, или для пользователей, чьи нарушения мобильности препятствуют использованию традиционных физических устройств ввода. OSK эмулирует большинство функций аппаратной клавиатуры, если не все.

Сенсорная клавиатура — это визуальная программная клавиатура, используемая для ввода текста с сенсорным вводом. Он не является заменой OSK, так как он используется только для ввода текста (он не эмулирует аппаратную клавиатуру) и отображается только в том случае, если текстовое поле или другой редактируемый элемент управления текстом получает фокус. Сенсорная клавиатура не поддерживает команды приложений или системы.

Note

OSK имеет приоритет над сенсорной клавиатурой, которая не будет отображаться, если OSK присутствует.

Как правило, клавиатура:

  • Один пользователь.
  • Не ограничивается ориентацией устройства.
  • Используется для ввода текста, навигации, игрового процесса и доступности.
  • Всегда доступно, как в проактивном, так и в реактивном режиме.

Дополнительная информация

Рекомендации по проектированию клавиатуры

Mouse

Мышь лучше всего подходит для производительных приложений и пользовательского интерфейса с высокой плотностью, где взаимодействие с пользователем требует пиксельной точности для выполнения целевых действий и команд.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

мышь

Типичное использование

Входные данные мыши можно изменить с добавлением различных клавиш клавиатуры (CTRL, SHIFT, ALT и т. д.). Эти клавиши можно объединить с левой кнопкой мыши, правой кнопкой мыши, кнопкой колеса и кнопками X для расширенного набора команд, оптимизированных для мыши. (Некоторые устройства мыши Microsoft имеют две дополнительные кнопки, называемые кнопками X, которые, как правило, используются для перехода назад и вперед в веб-браузерах).

Как и перо, мышь и сенсорный ввод могут эмулировать прямые манипуляции с элементами пользовательского интерфейса на экране с помощью физических жестов, выполняемых на этих объектах (например, прокрутка, скольжение, перетаскивание и поворот).

Для поддержки этих взаимодействий следует предоставить команды пользовательского интерфейса, относящиеся к мыши, или возможности. Например, используйте кнопки предыдущий и следующий (или + и -), чтобы пользователи могли перелистывать страницы содержимого, а также поворачивать, изменять размер и увеличивать объекты.

Дополнительная информация

Рекомендации по проектированию мыши

Жест

Жест — это любая форма перемещения пользователей, распознаваемая как входные данные для управления или взаимодействия с приложением. Жесты могут принимать различные формы: от простого использования руки для указания на что-либо на экране до конкретных, выученных шаблонов движения или длительных непрерывных движений с использованием всего тела. Будьте осторожны при разработке пользовательских жестов, так как их смысл может отличаться в зависимости от языкового и культурного контекста.

Поддержка устройств

  • Компьютеры и ноутбуки

жест

Типичное использование

События статических жестов запускаются после завершения взаимодействия.

  • События статических жестов включают «Касание», «Двойное касание», «Правое касание» и «Удержание».

События связанных с манипуляцией жестов указывают на находящееся в процессе взаимодействие. Они начинают срабатывать, когда пользователь прикасается к элементу, и продолжаются до тех пор, пока пользователь не поднимет пальцы или манипуляция не будет отменена.

  • События манипуляции включают много сенсорные взаимодействия, такие как масштабирование, сдвиг или поворот, а также взаимодействия, использующие инерцию и скорости, такие как перетаскивание. (Информация, предоставляемая событиями манипуляции, не определяет взаимодействие, а предоставляет такие данные, как положение, разность перевода и скорость.)

  • События указателя, такие как PointerPressed и PointerMoved, предоставляют низкоуровневые сведения для каждого сенсорного контакта, включая движение указателя и возможность различать события нажатия и отпускания.

Так как Windows поддерживает конвергентные интерфейсы взаимодействия, рекомендуется также предоставлять команды пользовательского интерфейса в стиле мыши или возможности, а не полагаться только на поддержку сенсорного ввода. Например, используйте кнопки предыдущий и следующий (или + и -), чтобы пользователи могли перелистывать страницы содержимого, а также поворачивать, изменять размер и увеличивать объекты.

Геймпад или контроллер

Геймпад или контроллер — это высоко специализированное устройство, обычно выделенное для игр. Однако он также используется для эмуляции базового ввода с клавиатуры и обеспечивает навигацию по интерфейсу, очень похожую на навигацию с помощью клавиатуры.

Поддержка устройств

  • Компьютеры и ноутбуки

контроллер

Типичное использование

Играя в игры и взаимодействуя с специализированным пользовательским интерфейсом в стиле консоли.

Haptics

Haptic feedback добавляет чувство касания к цифровым взаимодействиям, предоставляя физическое подтверждение, которое усиливает входные данные пользователей и делает интерфейс более адаптивным. Windows поддерживает контекстную тактильную отдачу через API InputHapticsManager, что позволяет приложениям обеспечивать единообразную тактильную отдачу на поддерживаемых устройствах.

Поддержка устройств

  • ПК и ноутбуки с поддерживаемым тактильным оборудованием

Haptics

Типичное использование

Тактильная обратная связь наиболее эффективна при взаимодействии с помощью касания, пера или сенсорной панели. Распространенные варианты использования включают подтверждение нажатия кнопки, предоставление обратной связи во время операций перетаскивания и усиление границ жестов. Тактильная отдача должна дополнять визуальную и звуковую обратную связь, а не заменять их.

Дополнительная информация

Реализовать тактильную обратную связь

Рекомендации по проектированию Haptics

Несколько входных данных

Проектирование приложения для поддержки максимально большого количества пользователей, устройств и типов входных данных (жест, речь, сенсорный ввод, сенсорный панель, мышь и клавиатура) повышает гибкость, удобство использования и специальные возможности.

Поддержка устройств

  • Планшет
  • Компьютеры и ноутбуки

Типичное использование

Так же, как люди объединяют голос и жест при взаимодействии друг с другом, они могут воспользоваться несколькими типами входных данных и режимами при взаимодействии с приложением. Однако эти объединенные взаимодействия должны оставаться интуитивно понятными и естественными, или они могут стать запутанными.