The desktop experience—common on Chromebooks and connected displays—enables precise input and advanced multitasking. The desktop environment allows users to work across multiple windows and instances, utilizing keyboard shortcuts and mouse and trackpad interactions. Apps optimized for desktop provide a productive user experience that bridges the gap between mobile convenience and desktop power.
Guidelines
Create an exceptional user experience that takes full advantage of device capabilities.
User experience
| Guideline ID | Test IDs | Description |
|---|---|---|
| Scrollbar_Display | T-Scrollbar_Display | App displays a scrollbar while content is being scrolled by a mouse or trackpad. |
| Hover_Parity | T-Hover_Parity | Where applicable, UI elements display additional content such as previews, fly‑out menus, and informative tooltips on mouse or trackpad hover. App maintains hover state parity with equivalent web or desktop versions of the app whenever possible. App ensures distinct and consistent hover states with visual contrast that supports accessibility standards on all UI elements. |
| Desktop_Menus | T-Desktop_Menus | App has non-intrusive UI elements such as desktop-style menus, context menus, and small modals where appropriate to allow users to remain focused on their primary task without constant navigation. |
| UI_Config | T-UI_Config | App has adaptive, user-configurable layouts for large screens and cursor-first devices, including:
|
| Request_Fullscreen_Mode | T-Request_Fullscreen_Mode | App implements Typically, apps provide a UI element such as a button that activates the fullscreen, immersive experience. |
Keyboard, mouse, and trackpad
| Guideline ID | Test IDs | Description |
|---|---|---|
| Keyboard_Navigation | T-Keyboard_Navigation | App supports seamless and efficient navigation with a keyboard. The app ensures distinct and consistent focus states with visual contrast that supports accessibility standards for all UI elements. Initial focus is set for appropriate UI elements; for example, when users draft a message in an email app, focus is initially on the To text field. Users should be able to start typing right away in the first text input field when a page loads. |
| Keyboard_Parity | T-Keyboard_Parity | App provides a comprehensive set of keyboard shortcuts while supporting conventional shortcuts such as Ctrl-C for copy and Ctrl-Z for undo. App maintains keyboard shortcut parity with equivalent web and desktop versions of the app whenever possible. |
| Input_Combinations | T-Input_Combinations | Keyboard and mouse or trackpad combinations, such as Ctrl+click or Ctrl+tap and Shift+click or Shift+tap, provide enhanced capabilities, including the selection of ranges of adjacent items or multiple separated items. |
| Triple_Click | T-Triple_Click | Triple clicking using a mouse or triple tapping with a trackpad selects entire lines or paragraphs of text. |
Multitasking and multi-instance
| Guideline ID | Test IDs | Description |
|---|---|---|
| Multitasking_Scenarios |
T-Multitasking_PiP, T-Multitasking_Split-Screen, T-Multitasking_Attachments |
App supports various multitasking scenarios, for example:
|
| Multitasking_PiP | T-Multitasking_PiP | App supports interactive picture‑in‑picture functionality that enables custom controls and user interaction in media and non‑media applications. |
| Multi-Instance | T-Multi-Instance | App is able to launch multiple instances of itself in separate windows. Use cases include document editing, web browsing, file management apps, and product comparisons in shopping apps. See Multi-instance in Support multi-window mode. |
Drag and drop
| Guideline ID | Test IDs | Description |
|---|---|---|
| Drag_Drop_Support | T-Drag_Drop_Support | App supports drag and drop between presentations within the app and, in multi-window mode, to and from other apps using touch input, mouse, trackpad, and stylus. See Enable drag and drop. See also Stylus_Drag_Drop. |
| T-Drag_Drop_Batch | App supports drag and drop of multiple elements into the app to be processed as a group. See DropHelper for simplified drag and drop. |
Printing and file management
| Guideline ID | Test IDs | Description |
|---|---|---|
| Printing_Support | T-Printing_Support | App supports document printing or exporting to a printable format. |
| File_Management_Basics | T-File_Management_Basics | App implements common file management functionality, including:
|
| File_Picker | T-File_Picker | App integrates with the OS file picker, ensuring seamless import and export experiences. Desktop and productivity users rely heavily on file managers for broad content access. |
| File_Handlers | T-File_Handlers | App designates itself as a file handler by declaring support for relevant file types. This enables users to open files with specific applications directly from the system's Files app. |
Cursors
| Guideline ID | Test IDs | Description |
|---|---|---|
| Custom_Cursors | T-Custom_Cursors | App displays customized cursors to indicate how and when users can interact with UI elements and content, for example:
PointerIcon and Mouse pointer icons.
|
| Cursor_Target_Size | T-Cursor_Target_Size | App prioritizes precision in cursor interactions by implementing cursor target sizes that match visual target sizes to reduce perceived target. |
Cross-device
| Guideline ID | Test IDs | Description |
|---|---|---|
| Cross_Device_Handoff | T-Cross_Device_Handoff | Apps that work on multiple types of Android devices allow users to start a task on one Android device and seamlessly transition to another. The app restores a near‑equivalent state for the same task so the user can continue where they left off. |
Offline support
| Guideline ID | Test IDs | Description |
|---|---|---|
| Offline_Support | T-Offline_Support | App enables offline functionality for the full or partial feature set, allowing users to remain productive. The app provides graceful degradation to notify users of connection requirements. |
App-to-web
| Guideline ID | Test IDs | Description |
|---|---|---|
| Web_Transition | T-Web_Transition | App ensures smooth and intelligent transitions between app and web content (and vice versa) where appropriate, avoiding fragmented user experiences. |
Tests
To verify that your app provides a premium, differentiated experience, complete the following tests.
User experience
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Scrollbar_Display | Scrollbar_Display | Scroll app content using a mouse and trackpad. Verify that a scrollbar appears while the content is scrolling. |
| T-Hover_Parity | Hover_Parity | Using a mouse and trackpad, hover the pointer over UI elements that contain cascading or pop‑up content. Verify that the additional content is revealed. |
| T-Desktop_Menus | Desktop_Menus | On desktop and connected displays, verify that desktop-style menus and context menus are used. |
| T-UI_Config | UI_Config | Verify that the app provides user-configurable layout options:
In all cases, verify that the app correctly reconfigures its layout and the content remains accessible and properly formatted. |
| T-Request_Fullscreen_Mode | Request_Fullscreen_Mode | Place the app window in a multi-window state, such as split-screen or desktop windowing mode. Trigger the app's fullscreen UI element. Verify that the app smoothly transitions to immersive fullscreen mode. |
Keyboard, mouse, and trackpad
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Keyboard_Navigation | Keyboard_Navigation | Using an external keyboard, navigate through the app's UI using the Tab and arrow keys. Verify that focus states are distinct and consistent for all interactive elements. Also verify that appropriate UI elements, such as text input fields, receive initial focus when a screen is first displayed and users are able to enter data. |
| T-Keyboard_Parity | Keyboard_Parity | Verify that the app supports conventional keyboard shortcuts and maintains keyboard shortcut parity with the web and desktop versions of the app whenever possible. |
| T-Input_Combinations | Input_Combinations | Using an external keyboard, mouse, and trackpad, select items in the app's UI. Select multiple separated items and ranges of adjacent items using keyboard/mouse/trackpad actions such as Ctrl+click, Ctrl+tap, Shift+click, and Shift+tap. |
| T-Triple_Click | Triple_Click | Using a mouse and trackpad, triple click or triple tap to select items in the app, for example, to select full lines of text. |
Multitasking and multi-instance
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Multitasking_PiP | Multitasking_Scenarios | Enter and exit picture-in-picture mode in portrait and landscape orientations and in multi‑window mode. In multi‑window mode, change the window size while picture‑in‑picture mode is active. In picture-in-picture mode, interact with any custom controls and verify their functionality. |
| T-Multitasking_Split-Screen | Multitasking_Scenarios | In multi-window mode, open another app from within the app and display both apps side by side. |
| T-Multitasking_Attachments | Multitasking_Scenarios | Open and close attachments and notifications in portrait and landscape orientations and in multi-window mode. |
| T-Multi-Instance | Multi-Instance | Launch multiple instances of the app in separate windows in portrait and landscape orientations and in multi-window mode. |
Drag and drop
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Drag_Drop_Support | Drag_Drop_Support | Drag and drop images and text on drop targets within the app. In multi-window mode, drag and drop images and text between the app and another app (to and from both apps). Drag and drop the content using touch input, mouse, trackpad, and stylus (see also T-Stylus_Drag_Drop). Verify the functionality in portrait and landscape orientations. |
| T-Drag_Drop_Batch | Drag_Drop_Support | Drag and drop multiple elements, such as images and text, as a group within the app. In multi-window mode, drag and drop groups of elements between the app and another app (to and from both apps). Drag and drop the content using touch input, mouse, trackpad, and stylus (see also T-Stylus_Drag_Drop). Verify the functionality in portrait and landscape orientations. |
Printing and file management
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Printing_Support | Printing_Support | Verify that the app can print documents or export them to a printable format such as PDF. |
| T-File_Management_Basics | File_Management_Basics | Verify that file names and locations are visible, and that users can choose save locations when downloading or uploading files. |
| T-File_Picker | File_Picker | Verify that the app uses the system file picker for importing and exporting files. |
| T-File_Handlers | File_Handlers | From the system Files app, verify that the app is listed as an option to open relevant file types. |
Cursors
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Custom_Cursors | Custom_Cursors | Interact with the app using a mouse and trackpad. Verify that custom cursors appear where appropriate, for example:
|
| T-Cursor_Target_Size | Cursor_Target_Size | Using a mouse and trackpad, interact with small UI elements such as icons, buttons, and handles. Verify that the interactive area of each element accurately reflects its visual boundaries, allowing for precise selection. |
Cross-device
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Cross_Device_Handoff | Cross_Device_Handoff | Start a task on one device, then switch to another device where the app is installed. Verify that you can continue the task from a near‑equivalent state. |
Offline support
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Offline_Support | Offline_Support | Disable network connectivity and verify that core app functionality remains available or that the app provides clear notification of connection requirements. |
App-to-web
| Test ID | Guideline IDs | Description |
|---|---|---|
| T-Web_Transition | Web_Transition | Interact with deep links or web content within the app. Verify that transitions between the app and related web content are seamless. |