From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- doc/manual/en_US/Accessibility.xml | 250 +++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 doc/manual/en_US/Accessibility.xml (limited to 'doc/manual/en_US/Accessibility.xml') diff --git a/doc/manual/en_US/Accessibility.xml b/doc/manual/en_US/Accessibility.xml new file mode 100644 index 00000000..149a0090 --- /dev/null +++ b/doc/manual/en_US/Accessibility.xml @@ -0,0 +1,250 @@ + + + +%all.entities; +]> + + + + &VBOX_PRODUCT; + + Accessibility Reference + + Version &VBOX_VERSION_STRING; + + &VBOX_VENDOR; + +
https://www.virtualbox.org
+ + + 2016-&VBOX_C_YEAR; + + &VBOX_VENDOR; + +
+ + + Introduction + + Welcome to the VirtualBox Accessibility Support documentation! This document is primarily + a reference to help people who are interested in our project accessibility support and will describe how to use VirtualBox + user interface step-by-step. Since whole the application navigation will be explained here, this document will also be + helpful for those who are not familiar with our product user interface and wish to learn more. It will be written in a bit + excessive manner so that many obvious things will be explained too precisely to make it easier to understand by ear for a + blind users. The document will be periodically updated with recent changes and test-cases allowing us to more strictly + follow the required guidelines and make our product fully accessible. + + + Our application is based on Qt5, a powerful cross-platform library which allows to visualize various user interface ideas + the most flexible and native way. This also means that the library we use is responsible for many navigation and + accessibility aspects (like fonts, size hints, colors, look&feel patterns and many other things), but not for all of + them. Nativity as one of the main ideas of the Qt-based application sometimes brings additional complexity because there is + always at least one host which uses unique combination of fonts and colors which breaks accessibility support in an + unpredictable way. + + + Independently on platform we are supporting screen-reader applications which can communicate with Qt5 accessibility + interface which supports Microsoft Active Accessibility (MSAA), OS X Accessibility, and the Unix/X11 AT-SPI standard. + + + Our application user interface is able to be started in two modes: + + + + First of them is VirtualBox Manager user interface, the main application window + which allows to manage and configure virtual machines and their groups. Besides that, this window provides user with + access to various global and machine related tools allowing to administrate some of VirtualBox objects and their + settings. + + + + + Second application mode is Virtual Machine user interface, which allows to control + virtual machine guest screens as separate application windows. Besides that, this interface allows to access some of + machine tools and adjust guest screens up to your needs, by changing their resolution and toggling full-screen, + seamless and scaled modes. + + + + But first of all we should start from the General Concept which is related to whole the + GUI and summarizes the navigation and accessibility aspects we are using for whole application. + + + + + General concept + + This chapter describes the general navigation and accessibility concept. We should note that not every detail of this + concept is already implemented and not every widget in our project already follows that concept. There is still large work + to be done in that regard. But in the end whole the project should correspond to this concept. + + + In short, every application window of our project should be navigated using the following approaches: + + Mouse Navigation + Keyboard Navigation + Screen-reader Navigation + + + + Mouse Navigation + + + + Each interactable widget can be focused with mouse (if that is not restricted by underlying host OS). + + + + + Each hovered interactable widget causes own tool-tip to appear. + + + + + Each tool-tip is given either in imperative mood (ex. "Create new virtual machine") or in short form (ex. "New"). + + + + + Short tool-tip form is only used if context is obvious for a user. + + + + + Tool-tip can contain shortcut mentioned in parentheses. + + + + + Each hovered menu bar / toolbar action causes own status-tip to appear (if window have status-bar). + + + + + Each status-tip is given in imperative mood only. + + + + + TBD... + + + + + + Keyboard Navigation + + + + Each interactable widget can be focused with keyboard (if that is not restricted by underlying host OS). + + + + + Focusing is possible through tabbing or mnemonic navigation. + + + + + Each button and menu bar / toolbar action can be directly activated with keyboard. + + + + + Activation is possible via shortcut or mnemonic. + + + + + Each shortcut is configurable through application preferences. + + + + + Mnemonic mentioned above is underlined alphanumeric character which is a part of widget label (if widget has label). + Mnemonic being triggered in conjunction with the Alt key. + + + + + Each mnemonic is unique within the visible part of current application window, there are no collisions. + + + + + TBD... + + + + + + Screen-reader Navigation + + + + Each interactable widget can be focused with screen-reader cursor. + + + + + Each focused widget have clear name (or full description) in native user language. + + + + + Each button and menu bar / toolbar action can be directly activated through the screen-reader cursor functionality. + + + + + Each complex widget which has children (like list, tree, table and similar) is represented as closed group which + encapsulates it's children clearly. + + + + + While navigating user is able to skip any group without forcing to be entered inside. + + + + + Each group child can be a group itself with the same rules as above applicable. + + + + + Each text-field can be directly edited through the screen-reader cursor functionality. + + + + + TBD... + + + + + +
+ -- cgit v1.2.3