# Use role='application'

DevFeed: [Use role='application'](<https://devfeed.tech/articles/use-role-application-9394.md>)

Original publisher: [Read original article](<https://a11yproject.com/posts/how-to-use-application-role/>)

Author: Dennis Gaebel

Published: 2013-02-09T00:00:00Z

Content type: article

Language: en

Sources: [The A11Y Project](<https://devfeed.tech/sources/the-a11y-project.md>)

Topics: [aria](<https://devfeed.tech/topics/aria.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>), [HTML](<https://devfeed.tech/topics/html.md>), [html elements](<https://devfeed.tech/topics/html-elements.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [aria](<https://devfeed.tech/tags/aria.md>), [browser](<https://devfeed.tech/tags/browser.md>), [forms](<https://devfeed.tech/tags/forms.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [user-interface](<https://devfeed.tech/tags/user-interface.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

The article explains how to use the WAI-ARIA role="application" carefully. It recommends applying the role sparingly, mainly to individual widgets or pages that do not resemble traditional documents, and relying on browser and assistive technology behavior for standard HTML controls and dynamic widgets when possible.

## Source excerpt

Never use role="application" on a widely containing element such as <body> if your page consists mostly of traditional widgets or page elements such as links that the user does not have to interact with in focus mode. Using role="application" unnecessarily can cause huge headaches for any assistive technology user trying to use your site/application. Only put it on the <body> element if your page consists solely of a widget or set of widgets that all need the focus mode[1] to be turned on. Do Use sparingly. If your page has no resemblance to a classic document in roughly over 90% of its content. Use clear labels within your application. Don't If a set of controls or user interface only contains these widgets that are all part of standard HTML[2] If your widget is dynamic such as a tree view, slider or table. Unless you take a great deal of care in ensuring that you've recreated a lot of native-ish custom navigation, it's almost always better to let the browser/assistive technology handle things. We only recommend using role='application' on a per-widget basis, and even then: very, very carefully. Allows the user to interact with forms and ARIA-enabled HTML elements. ↩︎ Standard HTML refers to: text, password, search, tel and other newer input type derivates, textarea, checkbox, button, radio button (usually inside a fieldset/legend element wrapper), select & option(s), links, paragraphs, headings, and other things that are classic/native to documents on the web. ↩︎