Title: WP_HTML_Attribute_Token
Published: March 29, 2023
Last modified: February 24, 2026

---

# class WP_HTML_Attribute_Token {}

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#description)
    - [See also](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#see-also)
 * [Methods](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#methods)
 * [Source](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#source)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#wp--skip-link--target)

This class’s access is marked private. This means it is not intended for use by 
plugin or theme developers, only by core. It is listed here for completeness.

Core class used by the HTML tag processor as a data structure for the attribute 
token, allowing to drastically improve performance.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#description)󠁿

This class is for internal usage of the [WP_HTML_Tag_Processor](https://developer.wordpress.org/reference/classes/wp_html_tag_processor/)
class.

### 󠀁[See also](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#see-also)󠁿

 * [WP_HTML_Tag_Processor](https://developer.wordpress.org/reference/classes/wp_html_tag_processor/)

## 󠀁[Methods](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#methods)󠁿

| Name | Description | 
| [WP_HTML_Attribute_Token::__construct](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/__construct/) | Constructor. |

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#source)󠁿

    ```php
    class WP_HTML_Attribute_Token {
    	/**
    	 * Attribute name.
    	 *
    	 * @since 6.2.0
    	 *
    	 * @var string
    	 */
    	public $name;

    	/**
    	 * Attribute value.
    	 *
    	 * @since 6.2.0
    	 *
    	 * @var int
    	 */
    	public $value_starts_at;

    	/**
    	 * How many bytes the value occupies in the input HTML.
    	 *
    	 * @since 6.2.0
    	 *
    	 * @var int
    	 */
    	public $value_length;

    	/**
    	 * The string offset where the attribute name starts.
    	 *
    	 * @since 6.2.0
    	 *
    	 * @var int
    	 */
    	public $start;

    	/**
    	 * Byte length of text spanning the attribute inside a tag.
    	 *
    	 * This span starts at the first character of the attribute name
    	 * and it ends after one of three cases:
    	 *
    	 *  - at the end of the attribute name for boolean attributes.
    	 *  - at the end of the value for unquoted attributes.
    	 *  - at the final single or double quote for quoted attributes.
    	 *
    	 * Example:
    	 *
    	 *     <div class="post">
    	 *          ------------ length is 12, including quotes
    	 *
    	 *     <input type="checked" checked id="selector">
    	 *                           ------- length is 6
    	 *
    	 *     <a rel=noopener>
    	 *        ------------ length is 11
    	 *
    	 * @since 6.5.0 Replaced `end` with `length` to more closely match `substr()`.
    	 *
    	 * @var int
    	 */
    	public $length;

    	/**
    	 * Whether the attribute is a boolean attribute with value `true`.
    	 *
    	 * @since 6.2.0
    	 *
    	 * @var bool
    	 */
    	public $is_true;

    	/**
    	 * Constructor.
    	 *
    	 * @since 6.2.0
    	 * @since 6.5.0 Replaced `end` with `length` to more closely match `substr()`.
    	 *
    	 * @param string $name         Attribute name.
    	 * @param int    $value_start  Attribute value.
    	 * @param int    $value_length Number of bytes attribute value spans.
    	 * @param int    $start        The string offset where the attribute name starts.
    	 * @param int    $length       Byte length of the entire attribute name or name and value pair expression.
    	 * @param bool   $is_true      Whether the attribute is a boolean attribute with true value.
    	 */
    	public function __construct( $name, $value_start, $value_length, $start, $length, $is_true ) {
    		$this->name            = $name;
    		$this->value_starts_at = $value_start;
    		$this->value_length    = $value_length;
    		$this->start           = $start;
    		$this->length          = $length;
    		$this->is_true         = $is_true;
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/html-api/class-wp-html-attribute-token.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/html-api/class-wp-html-attribute-token.php#L22)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/html-api/class-wp-html-attribute-token.php#L22-L116)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_html_attribute_token/?output_format=md#changelog)󠁿

| Version | Description | 
| [6.5.0](https://developer.wordpress.org/reference/since/6.5.0/) | Replaced `end` with `length` to more closely match `substr()`. | 
| [6.2.0](https://developer.wordpress.org/reference/since/6.2.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_html_attribute_token%2F)
before being able to contribute a note or feedback.