HTML - Input Attributes

Common Input Attributes


The type attribute specifies the input element type, such as text, password, checkbox, radio, and more. It determines the input field's look and behavior. Setting


<input type="password">

will mask the characters entered by the user, while


<input type="checkbox">

creates a checkbox input that can be turned on or off.


The name attribute gives a name to the input element. It is used to identify the element when sending the form data to the server. The name attribute is important for server-side processing and data handling. It lets you access the input field's value using the name as a reference.


The value attribute sets the input element's starting value. It can be pre-filled with a default value or left empty for the user to enter.


<input type="text" value="John Doe">

would pre-fill the text input with the value "John Doe". The value attribute is also used to specify the value of radio buttons and checkboxes.


The placeholder attribute provides a hint or example text inside the input field. It is shown when the input field is empty and goes away when the user starts typing. Placeholders help guide users on what kind of information is expected in the input field.


<input type="email" placeholder="Enter your email">

would show "Enter your email" as a placeholder text.


The required attribute specifies that the input field must be filled out before sending the form. If the user tries to send the form without entering a value in a required field, the browser will show an error message and stop the form from being sent. This attribute helps check user input and make sure that required information is provided.


The readonly attribute makes the input field read-only, stopping the user from changing its value. However, the value can still be selected and copied. Read-only fields are useful for showing pre-filled or calculated values that should not be changed by the user. The form data of read-only fields is still sent when the form is submitted.


The disabled attribute turns off the input element, making it unclickable and uneditable. Disabled fields are grayed out and do not respond to user interactions. They are not sent as part of the form data. Disabled fields are commonly used when certain input fields are not applicable or should not be changed based on other conditions.

Validation Attributes

min and max

The min and max attributes set the minimum and maximum allowed values for numeric input types, such as number, range, and date. These attributes help check that the value entered by the user is within a set range.

Example: Numeric input field with min and max

<input type="number" min="0" max="100">

If the user enters a value outside this range, the form will not be sent and the browser will show an error message.

minlength and maxlength

The minlength and maxlength attributes set the minimum and maximum allowed length for text input types, such as text, email, and password. These attributes limit the number of characters that can be entered into the input field.

Example: Password field with minlength and maxlength

<input type="password" minlength="8" maxlength="20">

If the entered value does not meet the length requirements, the form will not be submitted.


The pattern attribute sets a regular expression pattern that the input value must match. It is used to check the format of the entered data, such as email addresses, phone numbers, or specific patterns. The pattern is set using regular expression syntax.

Example: Email input field with pattern

<input type="email" pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}">

If the entered value does not match the set pattern, the form will not be sent and the browser will display an error message.


The step attribute sets the incremental steps for numeric input types when using arrow keys or spinners. It sets the granularity of allowed values.

Example: Number input field with step

<input type="number" step="0.1">

Setting step="0.1" on a number input field will allow values with one decimal place, such as 0.1, 0.2, 0.3, etc. Setting step="10" will allow values in increments of 10, such as 10, 20, 30, etc. The step attribute works together with the min and max attributes to control the range and increment of allowed values.

These validation attributes provide a way to check and limit user input on the client-side before submitting the form. They help maintain data integrity, reduce server-side validation, and give immediate feedback to the user. By using these attributes, you can create more robust and user-friendly forms that guide users towards entering valid and expected data.

Accessibility Attributes


The autocomplete attribute specifies if the browser should fill in the input field based on the user's previous values. It helps users complete forms faster and more accurately, especially for common information like names, email addresses, and shipping addresses.

Example: Input field with autocomplete enabled

<input type="email" autocomplete="on">

Setting autocomplete="on" will enable the browser's autocomplete feature for the input field. The browser will suggest previous values that match the input type and name. Users can select from the suggestions, saving time and reducing typos.


The autofocus attribute sets the focus on the input field when the page loads. It directs the user's attention to a specific field, making it ready for input. Only one form element can have the autofocus attribute per page.

Example: Input field with autofocus

<input type="text" autofocus>

When the page loads, the cursor will be placed inside the input field with the autofocus attribute. This is useful for forms where the main input field is known in advance, such as search bars or login forms.

aria-label and aria-labelledby

The aria-label and aria-labelledby attributes provide accessible labels for input elements. They help improve accessibility for users with assistive technologies, like screen readers.

The aria-label attribute lets you specify a text label for the input field that is read out by assistive technologies. It is useful when the visual label is not enough or when there is no visible label with the input field.

Example: Input field with aria-label

<input type="text" aria-label="Search">

In this example, assistive technologies will read out "Search" as the label for the input field, even if there is no visible label on the page.

The aria-labelledby attribute, on the other hand, lets you associate the input field with an existing element on the page that serves as its label. The value of aria-labelledby should be the ID of the labeling element.

Example: Input field with aria-labelledby

<label id="name-label">Name:</label>
<input type="text" aria-labelledby="name-label">

In this case, assistive technologies will use the text content of the element with the ID "name-label" as the label for the input field.

By using these accessibility attributes, you can make your forms more inclusive and easier to use for people with disabilities. They provide extra context and information to assistive technologies, helping users understand the purpose and expected input of each form field.

Styling Attributes


The size attribute sets the visible width of the input element in characters. It changes the size of the input field without changing the actual length of the value that can be entered. The size attribute is used to set the physical size of the input field, making it larger or smaller based on the specified number of characters.

Example: Input field with size attribute

<input type="text" size="40">

The text input field will be displayed with a width that can fit about 40 characters. However, users can still enter more characters than the specified size, and the input field will scroll horizontally to show the extra content.

The size attribute does not limit the number of characters that can be entered into the input field. It only controls the visual width of the field. To limit the length of the entered value, you should use the maxlength attribute instead.

width and height

The width and height attributes let you set the width and height of the input element using CSS units. These attributes give you more control over the size and layout of the input fields within your form.

Example: Input field with width and height attributes

<input type="text" style="width: 200px; height: 30px;">

The text input field will have a width of 200 pixels and a height of 30 pixels. You can use various CSS units, such as pixels (px), percentages (%), or ems (em), to set the sizes you want.

Using the width and height attributes, you can create input fields with custom sizes that fit well within your form layout. This is useful when you have specific design needs or want to align the input fields with other elements on the page.

The width and height attributes should be used with the style attribute or an external CSS file to apply the sizes you want. The style attribute lets you set inline CSS styles directly on the input element.


The style attribute lets you apply inline CSS styles to the input element. It gives flexibility in customizing the look of input fields beyond the basic attributes.

With the style attribute, you can set various CSS properties to control the visual styling of the input field. This includes properties like colors, fonts, borders, padding, and more.

Example: Input field with style attribute

<input type="text" style="border: 2px solid blue; padding: 5px; font-size: 16px; color: #333;">

The text input field will have a 2-pixel solid blue border, 5 pixels of padding, a font size of 16 pixels, and a text color of #333 (dark gray). You can add multiple CSS properties within the style attribute, separating them with semicolons.

Using the style attribute gives you great control over the visual presentation of your input fields. You can match the styling of the input fields with the overall design of your web page, creating a cohesive and visually appealing user interface.

However, it's generally recommended to use external CSS files or <style> tags in the <head> section of your HTML document to apply styles to your input fields. This approach separates the presentation from the structure and makes your code easier to maintain and reuse.

By using these styling attributes, you can improve the visual appearance of your input fields, making them more attractive and user-friendly. You can adjust the size, dimensions, or apply custom styles to create well-designed forms.