diff --git a/Doc/library/html.parser.rst b/Doc/library/html.parser.rst
index 3f075bb8cbae5c..a673fd3df911cc 100644
--- a/Doc/library/html.parser.rst
+++ b/Doc/library/html.parser.rst
@@ -141,7 +141,7 @@ implementations do nothing (except for :meth:`~HTMLParser.handle_startendtag`):
argument is a list of ``(name, value)`` pairs containing the attributes found
inside the tag's ``<>`` brackets. The *name* will be translated to lower case,
and quotes in the *value* have been removed, and character and entity references
- have been replaced.
+ have been replaced. For empty attributes, *value* is ``None``.
For instance, for the tag ````, this method
would be called as ``handle_starttag('a', [('href', 'https://www.cwi.nl/')])``.
@@ -317,6 +317,18 @@ without further parsing:
Data : alert("hello! ☺");
End tag : script
+Attribute names are converted to lowercase, quotes from attribute values removed,
+and ``None`` is returned as *value* for empty attributes (such as ``checked``):
+
+.. doctest::
+
+ >>> parser.feed("")
+ Start tag: input
+ attr: ('type', 'checkbox')
+ attr: ('checked', None)
+ attr: ('required', '')
+ attr: ('disabled', 'disabled')
+
Parsing comments:
.. doctest::