Глобальные атрибуты
===================

**Глобальные атрибуты** — **это атрибуты общие для всех HTML-элементов**; они могут использоваться всеми элементами, хотя на некоторые элементы могут не оказывать влияния.

Глобальные атрибуты могут быть указаны для любых элементов HTML, *даже для тех, которые не указаны в стандарте.* Это значит, что все нестандартные элементы должны допускать эти атрибуты, даже если использование этих элементов означает, что документ больше не является HTML5-совместимым. Например, HTML5-совместимые браузеры скрывают содержимое, помеченное как `<foo hidden>...<foo>` , хотя `<foo>` не является верным HTML-элементом.

В дополнение к *основным* для HTML глобальным атрибутам, также существуют следующие глобальные атрибуты:

* **`xml:lang`** и **`xml:base`** — унаследованы от спецификации XHTML, и хотя являются устаревшими, сохранены в целях совместимости.
* Многочисленные **`aria-*`** атрибуты, используемые для улучшения доступности.
* Атрибуты обработчиков событий: `onabort`, `onautocomplete`, `onautocompleteerror`, `onblur`, `oncancel`, `oncanplay`, `oncanplaythrough`, `onchange`, `onclick`, `onclose`, `oncontextmenu`, `oncuechange`, `ondblclick`, `ondrag`, `ondragend`, `ondragenter`, `ondragexit`, `ondragleave`, `ondragover`, `ondragstart`, `ondrop`, `ondurationchange`, `onemptied`, `onended`, `onerror`, `onfocus`, `oninput`, `oninvalid`, `onkeydown`, `onkeypress`, `onkeyup`, `onload`, `onloadeddata`, `onloadedmetadata`, `onloadstart`, `onmousedown`, `onmouseenter`, `onmouseleave`, `onmousemove`, `onmouseout`, `onmouseover`, `onmouseup`, `onmousewheel`, `onpause`, `onplay`, `onplaying`, `onprogress`, `onratechange`, `onreset`, `onresize`, `onscroll`, `onseeked`, `onseeking`, `onselect`, `onshow`, `onsort`, `onstalled`, `onsubmit`, `onsuspend`, `ontimeupdate`, `ontoggle`, `onvolumechange`, `onwaiting`.
Описание
--------

`accesskey`

Даёт подсказку для создания комбинации клавиш для текущего элемента. Этот атрибут содержит список разделённых пробелами символов. Браузер должен использовать первый имеющийся в раскладке клавиатуры символ из списка.

`class`

Это список разделённых пробелами классов элемента. Классы позволяют CSS и JavaScript выбирать и получать доступ к конкретным элементам через селекторы по классу или через функции, такие как метод `Document.getElementsByClassName()`.

`contenteditable`

Это перечислимый атрибут, указывающий, нужно ли предоставить пользователю возможность редактировать элемент. Если это так, браузер изменит свой виджет таким образом, чтобы позволить редактирование. Атрибут должен принимать одно из следующих значений:

* `true` или *пустая строка*, указывает, что элемент должен быть редактируемым;
* `false`, указывает, что элемент не должен быть редактируемым.

`contextmenu` (en-US)

Это **`id`** элемента `<menu>`, который следует использовать в качестве контекстного меню для данного элемента.

`data-*`

Определяет группу атрибутов, называемых атрибутами пользовательских данных, позволяющих осуществлять обмен служебной информацией между HTML и его DOM представлением, что может быть использовано скриптами. Все такие пользовательские данные доступны через интерфейс `HTMLElement` элемента у которого установлен атрибут. Свойство `HTMLElement.dataset` (en-US) предоставляет доступ к ним.

`dir` (en-US)

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

* `ltr`, что расшифровывается как *left to right* (слева направо), и предназначено для языков, в которых пишут слева направо (как в русском);
* `rtl`, что расшифровывается как *right to left* (справа налево), и предназначено для языков, в которых пишут справа налево (как в арабском);
* `auto` — позволяет принять решение пользовательскому приложению. Оно применяет базовый алгоритм — анализирует символы внутри элемента до тех пор, пока не найдёт символ со строгим направлением, а затем применяет это направление ко всему элементу.

`draggable` (en-US) 
Экспериментальная возможность

Это перечислимый атрибут, указывающий, можно ли перетаскивать элемент с помощью Drag and Drop API. Он может принимать одно из следующих значений:

* `true`, указывающее, что элемент можно перетаскивать;
* `false`, указывающее, что элемент нельзя перетаскивать.

`dropzone` 
Экспериментальная возможность

Это перечислимый атрибут, указывающий типы содержимого, которое можно перетащить в элемент с помощью Drag and Drop API. Он может принимать одно из следующих значений:

* `copy`, указывающее, что перетаскивание создаст копию перетаскиваемого элемента;
* `move`, указывающее, что перетаскиваемый элемент будет перемещён в новое расположение;
* `link` — создаст ссылку на перетаскиваемые данные.

`hidden` (en-US)

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

`id`

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

`itemid` 
Экспериментальная возможность

`itemprop` (en-US) 
Экспериментальная возможность

`itemref` (en-US) 
Экспериментальная возможность

`itemscope` 
Экспериментальная возможность

`itemtype` (en-US) 
Экспериментальная возможность


Эти атрибуты относятся к определению микроданных.

`lang`

Участвует в определении языка элемента, языка написания нередактируемых элементов или языка, на котором должны быть написаны редактируемые элементы. Содержит единственное значение в формате, определённом в документе IETF *BCP47*. `xml:lang` имеет приоритет над ним.

`spellcheck` (en-US) 
Экспериментальная возможность

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

* `true`, указывающее, что элемент должен, по возможности, проверяться на наличие орфографических ошибок;
* `false`, указывающее, что элемент не должен проверяться на наличие орфографических ошибок.

`style`

Содержит описание стилей CSS, которые должны быть применены к элементу. Учтите, что рекомендуется определять стили в отдельном файле или файлах. Этот атрибут, как и элемент `<style>`, предназначен, в основном, для оперативного применения стилей, например в целях тестирования.

`tabindex`

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

* *отрицательное число* означает, что элемент фокусируемый, но он не может получить фокус посредством последовательной навигации с клавиатуры;
* `0` означает, что элемент фокусируемый и может получить фокус посредством последовательной навигации с клавиатуры, но порядок его следования определяется платформой;
* *положительное значение* означает, что элемент фокусируемый и может получить фокус посредством последовательной навигации с клавиатуры. Порядок его следования определяется значением атрибута — последовательно возрастающего числа **tabindex**. В случае, когда несколько элементов имеют одинаковое значение атрибута **tabindex**, порядок их следования при навигации определяется их местом в документе.

`title` (en-US)

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

`translate` (en-US)

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

* *пустая строка* или `"yes"` указывает, что элемент должен быть переведён;
* `"no`" указывает, что элемент не должен быть переведён.

Спецификации
------------

| Specification |
| --- |
| HTML Standard # the-accesskey-attribute |
| HTML Standard # attr-autocapitalize |
| HTML Standard # attr-fe-autocomplete |
| HTML Standard # dom-fe-autofocus |
| HTML Standard # global-attributes:classes-2 |
| HTML Standard # attr-contenteditable |
| HTML Standard # attr-data-\* |
| HTML Standard # the-dir-attribute |
| HTML Standard # the-draggable-attribute |
| HTML Standard # attr-enterkeyhint |
| CSS Shadow Parts # element-attrdef-html-global-exportparts |
| HTML Standard # the-hidden-attribute |
| HTML Standard # global-attributes:the-id-attribute-2 |
| HTML Standard # the-inert-attribute |
| HTML Standard # attr-inputmode |
| HTML Standard # attr-is |
| HTML Standard # attr-itemid |
| HTML Standard # names:-the-itemprop-attribute |
| HTML Standard # attr-itemref |
| HTML Standard # attr-itemscope |
| HTML Standard # attr-itemtype |
| HTML Standard # attr-lang |
| HTML Standard # attr-nonce |
| CSS Shadow Parts # part-attr |
| HTML Standard # the-popover-attribute |
| HTML Standard # attr-popovertarget |
| HTML Standard # attr-popovertargetaction |
| HTML Standard # attr-slot |
| DOM Standard # ref-for-dom-element-slot① |
| HTML Standard # attr-spellcheck |
| HTML Standard # the-style-attribute |
| HTML Standard # attr-tabindex |
| HTML Standard # the-title-attribute |
| HTML Standard # attr-translate |
| VirtualKeyboard API # dom-elementcontenteditable-virtualkeyboardpolicy |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Интерфейсы `Element` и `GlobalEventHandlers`, которые позволяют запрашивать большинство глобальных атрибутов.