#15114: The html.parser module now raises a DeprecationWarning when the strict argument of HTMLParser or the HTMLParser.error method are used.
diff --git a/Doc/library/html.parser.rst b/Doc/library/html.parser.rst
index e4154ef..0ea9644 100644
--- a/Doc/library/html.parser.rst
+++ b/Doc/library/html.parser.rst
@@ -74,7 +74,7 @@
        def handle_data(self, data):
            print("Encountered some data  :", data)
 
-   parser = MyHTMLParser(strict=False)
+   parser = MyHTMLParser()
    parser.feed('<html><head><title>Test</title></head>'
                '<body><h1>Parse me!</h1></body></html>')
 
@@ -272,7 +272,7 @@
        def handle_decl(self, data):
            print("Decl     :", data)
 
-   parser = MyHTMLParser(strict=False)
+   parser = MyHTMLParser()
 
 Parsing a doctype::
 
diff --git a/Lib/html/parser.py b/Lib/html/parser.py
index 18f3115..d7541ae 100644
--- a/Lib/html/parser.py
+++ b/Lib/html/parser.py
@@ -94,6 +94,8 @@
         return result
 
 
+_strict_sentinel = object()
+
 class HTMLParser(_markupbase.ParserBase):
     """Find tags and other markup and call handler functions.
 
@@ -116,16 +118,18 @@
 
     CDATA_CONTENT_ELEMENTS = ("script", "style")
 
-    def __init__(self, strict=False):
+    def __init__(self, strict=_strict_sentinel):
         """Initialize and reset this instance.
 
         If strict is set to False (the default) the parser will parse invalid
         markup, otherwise it will raise an error.  Note that the strict mode
-        is deprecated.
+        and argument are deprecated.
         """
-        if strict:
-            warnings.warn("The strict mode is deprecated.",
+        if strict is not _strict_sentinel:
+            warnings.warn("The strict argument and mode are deprecated.",
                           DeprecationWarning, stacklevel=2)
+        else:
+            strict = False  # default
         self.strict = strict
         self.reset()
 
@@ -151,6 +155,8 @@
         self.goahead(1)
 
     def error(self, message):
+        warnings.warn("The 'error' method is deprecated.",
+                      DeprecationWarning, stacklevel=2)
         raise HTMLParseError(message, self.getpos())
 
     __starttag_text = None
diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py
index b15b6fd..6ebf5b8 100644
--- a/Lib/test/test_htmlparser.py
+++ b/Lib/test/test_htmlparser.py
@@ -96,7 +96,9 @@
             parser = self.get_collector()
             parser.feed(source)
             parser.close()
-        self.assertRaises(html.parser.HTMLParseError, parse)
+        with self.assertRaises(html.parser.HTMLParseError):
+            with self.assertWarns(DeprecationWarning):
+                parse()
 
 
 class HTMLParserStrictTestCase(TestCaseBase):
@@ -360,7 +362,16 @@
 class HTMLParserTolerantTestCase(HTMLParserStrictTestCase):
 
     def get_collector(self):
-        return EventCollector(strict=False)
+        return EventCollector()
+
+    def test_deprecation_warnings(self):
+        with self.assertWarns(DeprecationWarning):
+            EventCollector(strict=True)
+        with self.assertWarns(DeprecationWarning):
+            EventCollector(strict=False)
+        with self.assertRaises(html.parser.HTMLParseError):
+            with self.assertWarns(DeprecationWarning):
+                EventCollector().error('test')
 
     def test_tolerant_parsing(self):
         self._run_check('<html <html>te>>xt&a<<bc</a></html>\n'
@@ -676,7 +687,7 @@
 class AttributesTolerantTestCase(AttributesStrictTestCase):
 
     def get_collector(self):
-        return EventCollector(strict=False)
+        return EventCollector()
 
     def test_attr_funky_names2(self):
         self._run_check(
diff --git a/Misc/NEWS b/Misc/NEWS
index e54a16c..ff9860e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -31,6 +31,9 @@
 Library
 -------
 
+- Issue #15114: The html.parser module now raises a DeprecationWarning when the
+  strict argument of HTMLParser or the HTMLParser.error method are used.
+
 - Issue #19410: Undo the special-casing removal of '' for
   importlib.machinery.FileFinder.