What is the difference between a keyboard accelerator and. accelerator key A key, or combination of keys, on a keyboard that can be used to perform a particular operation. For example, in many applications pressing ctrl+a (holding down the control key and pressing letter ‘a’) is ‘select all’. Other examples are ctrl+c (copy), ctrl+x (cut), and ctrl+v (paste).
Accelerator keys or keyboard accelerators are keyboard shortcuts that improve the usability and accessibility of your Windows applications by providing an intuitive way for users to invoke common actions or commands without navigating the app UI. See the Access keys topic for details on navigating the UI of a Windows application with keyboard shortcuts. A keyboard is indispensable for users with certain disabilities see Keyboard accessibilityand is also an important tool for users who prefer it as a more efficient way to interact with an app.
Accelerators typically include the function keys F1 through F12 or some combination of a standard key paired with one or more modifier keys CTRL, Shift. UWP platform controls have built-in keyboard accelerators. These built-in keyboard accelerators are referred to as control accelerators and are executed only if the focus is on the element or one of its children. Accelerators defined by you using the keyboard accelerator APIs discussed here are referred to as app accelerators. Keyboard accelerators are not available for every action but are often associated with commands exposed in menus and should be specified with the menu item content.
Accelerators can also be associated with actions that do not have equivalent menu items. However, because users rely on an application's menus to discover and learn the available command set, you should try to make discovery of accelerators as easy as possible using labels or established patterns can help with this. Keyboard accelerators described in a menu item label. We recommend that you specify keyboard accelerators wherever appropriate in your UI, and support accelerators in all custom controls.
Keyboard accelerators make your app more accessible for users with motor disabilities, including those users who can press only one key at a time or have difficulty using a mouse.
A well-designed keyboard UI is an important aspect of software accessibility. It enables users with vision impairments or who have certain motor disabilities to navigate an app and interact with its features.
Such users might not be able to operate a mouse and instead rely on various assistive technologies such as keyboard enhancement tools, on-screen keyboards, screen enlargers, screen readers, and voice input utilities. For these users, comprehensive command coverage is crucial.
Keyboard accelerators make your app more usable for power users who prefer to interact through the keyboard. Experienced users often have a strong preference for using the keyboard because keyboard-based commands can be entered more quickly and don't require them to remove their hands from the keyboard. For these users, efficiency and consistency are crucial; comprehensiveness is important only for the most frequently used commands. With these APIs, you don't have to handle multiple KeyDown events to detect the key combination pressed, and you can localize accelerators in the app resources.
We recommend that you set keyboard accelerators for the most common actions in your app and document them using the menu item label or tooltip. In this example, we declare keyboard accelerators only for the Rename and Copy commands. Keyboard accelerator described in a tooltip. The UIElement object has a KeyboardAccelerator collection, KeyboardAcceleratorswhere you specify your custom KeyboardAccelerator objects and define the keystrokes for the keyboard accelerator:.
Key - the VirtualKey used for the keyboard accelerator. Modifiers — the VirtualKeyModifiers used for the keyboard accelerator. If Modifiers is not set, the default value is None. However, Gamepad virtual keys are not supported.
Context menu actions affect only specific areas or elements, such as the selected characters in a text editor or a song in a playlist. For this reason, we recommend setting the scope of keyboard accelerators for context menu items to the parent of the context menu. Use the ScopeOwner property to specify the scope of the keyboard accelerator.
This code demonstrates how to implement a context menu on a ListView with scoped keyboard accelerators:. KeyboardAccelerators element marks the accelerator as scoped instead of global the default is null, or global. For more detail, see the Resolving accelerators section later in this topic. The UIA [control patterns] expose common control functionality. For example, the Button control implements the Invoke control pattern to support the Click event typically a control is invoked by clicking, double-clicking, or pressing Enter, a predefined keyboard shortcut, or some other combination of keystrokes.
When a keyboard accelerator is used to invoke a control, the XAML framework looks up whether the control implements the Invoke control pattern and, if so, activates it it is not necessary to listen for the KeyboardAcceleratorInvoked event. If an element implements multiple control patterns, only one can be activated through an how to make a mullet shirt. The control patterns are prioritized as follows:. If no match is identified, the accelerator is invalid and a debug message is provided "No automation patterns for this component what does i.
e stands for. Implement all desired behavior in the Invoked event. Setting Handled to true in your event handler suppresses this message. The Invoked event of the KeyboardAccelerator object is fired when the accelerator is executed. Here we demonstrate how to define a collection of keyboard accelerators for items in a ListView, and how to handle the Invoked event for each accelerator. Some controls, when they have focus, support built-in keyboard accelerators that override any app-defined accelerator.
While we don't recommend overriding default control behaviors due to user familiarity and expectations, you can override a control's built-in keyboard accelerator. If a control is disabled, the associated accelerator is also disabled.
Parent and child how to defragment a hard drive windows 8 can share the same accelerator.
In this case, the parent control can be invoked even if the child has focus and its accelerator is disabled. Screen readers such as Narrator can announce the keyboard accelerator key combination to users. You can customize this through the AcceleratorKey AutomationProperties attached property.
If more than one accelerator is specified, only the first is announced. In this example, the AutomationProperty. Setting AutomationProperties. AcceleratorKey doesn't enable keyboard functionality, it only indicates to the UIA framework which keys are used.
We recommend that you make keyboard accelerators consistent across Windows applications. Users have to memorize keyboard accelerators and expect the same or similar results.
Notice that some of the combinations are not valid for localized versions of Windows. We recommend providing localized keyboard accelerators if the app is localized. As keyboard accelerators are not typically described directly in the UI of your Windows application, you can improve discoverability through tooltipswhich display automatically when the user moves focus to, presses and holds, or hovers the mouse pointer over a control.
The tooltip can identify whether a control has an associated keyboard accelerator and, if so, what the accelerator key combination is. By default, when keyboard accelerators are declared, all controls except MenuFlyoutItem and ToggleMenuFlyoutItem present the corresponding key combinations what are the chances of getting back with an ex- girlfriend a tooltip.
Control the presentation behavior by using the KeyboardAcceleratorPlacementMode property, which accepts two values: Auto or Hidden.
In some cases, you might need to present a tooltip relative to another element typically a container object. Here, we show how to use the KeyboardAcceleratorPlacementTarget property to display the keyboard accelerator key combination for a Save button with the Grid container instead of the button. In some cases, we recommend using a control's label to identify whether the control has an associated keyboard accelerator and, if so, what the accelerator key combination is.
The override text is not be presented if the system cannot detect an attached keyboard you can check this yourself through the KeyboardPresent property. Accelerators are composed of two types of keys: modifiers and non-modifiers. Non-modifiers are any virtual key, such as Delete, F3, Spacebar, Esc, and all alphanumeric and punctuation keys. A keyboard accelerator is invoked when the user presses a non-modifier key while they press and hold one or more modifier keys.
This behavior cannot be modified. Input events occur in a specific sequence that you can intercept and handle based on the requirements of your app. In XAML, a keystroke is processed as if there is just one input bubbling pipeline. For example, if an element has focus and the user presses a key down, a KeyDown event is raised on the element, followed by the parent of the element, and so on up the tree, until the args. Handled property is true. The KeyDown event is also used by some controls to implement the built-in control accelerators.
When a control has a keyboard accelerator, it handles the KeyDown event, which means that there won't be KeyDown event bubbling. AddHandler is set to true. As the CharacterReceived event is fired after the KeyDown event for text controls such as TextBox, you can cancel character input in the KeyDown event handler.
The preview input events are fired before any other events. If you don't handle these events, the accelerator for the element that has the focus is fired, followed by the KeyDown event. Both events bubble until handled. Key event sequence. When the accelerator event is handled, the KeyDown event is also marked as handled.
The KeyUp event remains unhandled. A keyboard accelerator event bubbles from the element that has focus up to the root. If the event isn't handled, the XAML framework looks for other unscoped app accelerators outside of the bubbling path. When two keyboard accelerators are defined with the same key combination, the first keyboard accelerator found on the visual tree is invoked.
Scoped keyboard accelerators are invoked only when focus is inside a specific scope. For example, in a Grid that contains dozens of controls, a keyboard accelerator can be invoked for a control only when focus is within the Grid the scope owner. The UIElement. TryInvokeKeyboardAccelerator method invokes any matching accelerators in the subtree of the element. OnProcessKeyboardAccelerators method is executed before the keyboard accelerator. This method passes a ProcessKeyboardAcceleratorArgs object that contains the key, the modifier, and a Boolean indicating whether the keyboard accelerator is handled.
If marked as handled, the keyboard accelerator bubbles so the outside keyboard accelerator is never invoked. You must check whether the event was marked what are voice charges on verizon bill handled.
We recommend localizing all keyboard accelerators. You can do this with the standard UWP resources.
A keyboard accelerator (or, simply, accelerator) is a keystroke or combination of keystrokes that generates a WM_COMMAND or WM_SYSCOMMAND message for an application. Aug 02, · Full List Of Windows 10 Keyboard Shortcuts (Accelerator Keys or Hotkeys) Windows 10 launched in countries with 7 versions and languages. Windows 10 bring lots of new features such as Cortana, The Edge browser, Virtual desktops/Task View, Continuum, Action Center, and etc. Accelerator Keys for Mac Excel | Accelerator Keys is a menu-bar app that enables alt-key shortcuts natively in Mac Excel. Get more out of your Mac. Try it free for 7 days.
Skip to main content. Contents Exit focus mode. Using Keyboard Accelerators Discusses tasks that are associated with keyboard accelerators. This function is used to obtain the accelerator-table data that corresponds to an accelerator-table handle, or to determine the size of the accelerator-table data. CreateAcceleratorTable Creates an accelerator table. DestroyAcceleratorTable Destroys an accelerator table. LoadAccelerators Loads the specified accelerator table.
TranslateAccelerator Processes accelerator keys for menu commands. TranslateAccelerator does not return until the window procedure has processed the message.
It occurs when the user clicks an item on the menu bar or presses a menu key. This allows the application to modify the menu before it is displayed. A window receives this message through its WindowProc function. This allows an application to modify the menu before it is displayed, without changing the entire menu.
This message is sent to the window that owns the menu. It specifies the character code of a system character key that is, a character key that is pressed while the ALT key is down.
Is this page helpful? Yes No. Any additional feedback? Skip Submit. About Keyboard Accelerators. Using Keyboard Accelerators. Keyboard Accelerator Reference. Copies the specified accelerator table. Processes accelerator keys for menu commands. Sent when a menu is about to become active. Sent when a drop-down menu or submenu is about to become active. Sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key.
A window receives this message when the user chooses a command from the Window menu or when the user chooses the maximize button, minimize button, restore button, or close button.