Day 62: Global Attributes
Tags: webdev, frontend, 100daysofcode, html
Published: 2023-10-05 15:10:00

## What are Global Attributes? 🤔

Global attributes, as the name suggests, are attributes that can be applied to virtually any HTML element. They provide common properties that are useful across different types of elements. Let's explore some of the most important global attributes:

### 1. `id` - The Identifier 🆔

The `id` attribute provides a unique identifier for an element on a page. This attribute is like giving an element a name tag, making it easily targetable by JavaScript and CSS. 

```html
<button id="submit-button">Submit</button>
```

In JavaScript, you can easily manipulate this button:

```javascript
const button = document.getElementById('submit-button');
button.addEventListener('click', () => {
    // Your code here
});
```

### 2. `class` - The Classifier 🎩

The `class` attribute allows you to assign one or more CSS classes to an element. This is crucial for applying styles consistently across multiple elements.

```html
<p class="highlighted">This is important text.</p>
```

In your CSS:

```css
.highlighted {
    background-color: yellow;
}
```

### 3. `style` - Inline Styling 🎨

The `style` attribute lets you apply inline CSS styles directly to an element. This is handy when you need specific styling for a single element.

```html
<div style="color: blue; font-size: 18px;">Styled Div</div>
```

### 4. `data-*` - Custom Data Attributes 📦

Custom data attributes are a powerful way to store extra information with an element. They start with "data-" followed by a meaningful name. These attributes are frequently used to store data for JavaScript to use.

```html
<button data-product-id="12345">Add to Cart</button>
```

In JavaScript:

```javascript
const button = document.querySelector('button');
const productId = button.getAttribute('data-product-id');
```

### 5. `aria-*` - Accessibility Attributes ♿

Attributes starting with "aria-" are used to enhance the accessibility of web content for people with disabilities. These attributes provide valuable information to assistive technologies.

```html
<button aria-label="Close" aria-describedby="tooltip">X</button>
```

### 6. `title` - Tooltip Text 📝

The `title` attribute specifies extra information about an element. It often appears as a tooltip when you hover over the element.

```html
<img src="avatar.jpg" alt="User Avatar" title="John Doe">
```

### 7. `contenteditable` - Editable Content 📝

The `contenteditable` attribute turns an element into an editable field, making it suitable for building web applications with rich text editing features.

```html
<div contenteditable="true">This text can be edited.</div>
```
### 8. **`lang` - Multilingual Support 🌐**

Building a multilingual website? The `lang` attribute helps screen readers and search engines understand the language of your content:

```html
<p lang="fr">Bonjour le monde!</p>
<p lang="es">Hola, mundo!</p>
```

### 9. **`tabindex` - Navigational Control 🚀**

Want to control the tab order for keyboard navigation? Use `tabindex`:

```html
<input type="text" tabindex="1" />
<input type="submit" tabindex="2" />
```

This ensures that users navigate through your form in a logical order.

### 10. **`hidden` (🙈 Hide and Seek)**

The `hidden` attribute hides an element from the user, providing a way to control visibility dynamically.

```html
<p hidden>This paragraph is hidden.</p>
```

## 11. **`accesskey` (⌨️ Keyboard Shortcuts)**

`accesskey` assigns a keyboard shortcut to an element, facilitating navigation for users who prefer using the keyboard.

```html
<button accesskey="H">Home</button>
```