diff --git a/pw_presubmit/docs.rst b/pw_presubmit/docs.rst
index 0458254..dce3315 100644
--- a/pw_presubmit/docs.rst
+++ b/pw_presubmit/docs.rst
@@ -114,23 +114,23 @@
 C/C++ headers is ``#pragma once``. This is enabled by adding
 ``pw_presubmit.pragma_once`` to a presubmit program.
 
-Banned Words
-============
-.. banned-words: disable
+Inclusive Language
+==================
+.. inclusive-language: disable
 
-The banned words check looks for words that are typical of non-inclusive code,
-like using "master" and "slave" in place of "primary" and "secondary" or
+The inclusive language check looks for words that are typical of non-inclusive
+code, like using "master" and "slave" in place of "primary" and "secondary" or
 "sanity check" in place of "consistency check".
 
-.. banned-words: enable
+.. inclusive-language: enable
 
-These checks can be disabled for individual lines with "banned-words: ignore"
-on the line in question or the line above it, or for entire blocks by using
-"banned-words: disable" before the block and "banned-words: enable" after the
-block.
+These checks can be disabled for individual lines with
+"inclusive-language: ignore" on the line in question or the line above it, or
+for entire blocks by using "inclusive-language: disable" before the block and
+"inclusive-language: enable" after the block.
 
 .. In case things get moved around in the previous paragraphs the enable line
-.. is repeated here: banned-words: enable.
+.. is repeated here: inclusive-language: enable.
 
 pw_presubmit
 ~~~~~~~~~~~~
@@ -166,8 +166,8 @@
       sys.exit(2)
 
   import pw_presubmit
-  from pw_presubmit import banned_words, build, cli, environment, format_code
-  from pw_presubmit import git_repo, python_checks, filter_paths
+  from pw_presubmit import build, cli, environment, format_code, git_repo
+  from pw_presubmit import inclusive_language, python_checks, filter_paths
   from pw_presubmit import PresubmitContext
   from pw_presubmit.install_hook import install_hook
 
@@ -230,7 +230,7 @@
       # Use the upstream formatting checks, with custom path filters applied.
       format_code.presubmit_checks(exclude=PATH_EXCLUSIONS),
       # Include the upstream inclusive language check.
-      banned_words.banned_words,
+      inclusive_language.inclusive_language,
   )
 
   FULL = (
diff --git a/pw_presubmit/py/BUILD.gn b/pw_presubmit/py/BUILD.gn
index 444ab0f..f49fbeb 100644
--- a/pw_presubmit/py/BUILD.gn
+++ b/pw_presubmit/py/BUILD.gn
@@ -20,12 +20,12 @@
   setup = [ "setup.py" ]
   sources = [
     "pw_presubmit/__init__.py",
-    "pw_presubmit/banned_words.py",
     "pw_presubmit/build.py",
     "pw_presubmit/cli.py",
     "pw_presubmit/environment.py",
     "pw_presubmit/format_code.py",
     "pw_presubmit/git_repo.py",
+    "pw_presubmit/inclusive_language.py",
     "pw_presubmit/install_hook.py",
     "pw_presubmit/pigweed_presubmit.py",
     "pw_presubmit/presubmit.py",
diff --git a/pw_presubmit/py/pw_presubmit/banned_words.py b/pw_presubmit/py/pw_presubmit/inclusive_language.py
similarity index 75%
rename from pw_presubmit/py/pw_presubmit/banned_words.py
rename to pw_presubmit/py/pw_presubmit/inclusive_language.py
index 8c789e6..915027a 100644
--- a/pw_presubmit/py/pw_presubmit/banned_words.py
+++ b/pw_presubmit/py/pw_presubmit/inclusive_language.py
@@ -11,7 +11,7 @@
 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 # License for the specific language governing permissions and limitations under
 # the License.
-"""Banned words presubmit check."""
+"""Inclusive language presubmit check."""
 
 import collections
 from pathlib import Path
@@ -22,8 +22,8 @@
 
 # List borrowed from Android:
 # https://source.android.com/setup/contribute/respectful-code
-# banned-words: disable
-BANNED_WORDS = [
+# inclusive-language: disable
+NON_INCLUSIVE_WORDS = [
     r'master',
     r'slave',
     r'(white|gr[ae]y|black)\s*(list|hat)',
@@ -40,17 +40,17 @@
     r'm[ae]n[-\s]*in[-\s]*the[-\s]*middle',
     r'mitm',
 ]
-# banned-words: enable
+# inclusive-language: enable
 
-# Test: master  # banned-words: ignore
+# Test: master  # inclusive-language: ignore
 # Test: master
 
 
-def _process_banned_words(*words):
-    """Turn banned-words list into one big regex with common inflections."""
+def _process_inclusive_language(*words):
+    """Turn word list into one big regex with common inflections."""
 
     if not words:
-        words = tuple(BANNED_WORDS)
+        words = tuple(NON_INCLUSIVE_WORDS)
 
     all_words = []
     for entry in words:
@@ -71,7 +71,7 @@
     )
 
 
-BANNED_WORDS_REGEX = _process_banned_words()
+NON_INCLUSIVE_WORDS_REGEX = _process_inclusive_language()
 
 # If seen, ignore this line and the next.
 _IGNORE = 'banned-words: ignore'
@@ -81,9 +81,9 @@
 _ENABLE = 'banned-words: enable'
 
 
-def banned_words(
+def inclusive_language(
     ctx: presubmit.PresubmitContext,
-    words_regex=BANNED_WORDS_REGEX,
+    words_regex=NON_INCLUSIVE_WORDS_REGEX,
 ):
     """Presubmit check that ensures files do not contain banned words."""
 
@@ -123,19 +123,29 @@
         print('=' * 40)
         print(path)
         for match in matches:
-            print(f'Found banned word "{match.word}" on line {match.line}')
+            print(
+                f'Found non-inclusive word "{match.word}" on line {match.line}'
+            )
 
     if found_words:
+        print()
+        print("""
+Individual lines can be ignored with "inclusive-language: ignore". Blocks can be
+ignored with "inclusive-language: disable" and reenabled with
+"inclusive-language: enable".
+""".strip())
+        # Re-enable just in case: banned-words: enable.
+
         raise presubmit.PresubmitFailure
 
 
-def banned_words_checker(*words):
+def inclusive_language_checker(*words):
     """Create banned words checker for the given list of banned words."""
 
-    regex = _process_banned_words(*words)
+    regex = _process_inclusive_language(*words)
 
-    def banned_words(  # pylint: disable=redefined-outer-name
+    def inclusive_language(  # pylint: disable=redefined-outer-name
         ctx: presubmit.PresubmitContext):
-        globals()['banned_words'](ctx, regex)
+        globals()['inclusive_language'](ctx, regex)
 
-    return banned_words
+    return inclusive_language
diff --git a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
index d2e0040..5e0e747 100755
--- a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
+++ b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
@@ -35,8 +35,8 @@
 
 import pw_package.pigweed_packages
 
-from pw_presubmit import banned_words, build, cli, format_code, git_repo
-from pw_presubmit import call, filter_paths, plural, PresubmitContext
+from pw_presubmit import build, cli, format_code, git_repo, call, filter_paths
+from pw_presubmit import inclusive_language, plural, PresubmitContext
 from pw_presubmit import PresubmitFailure, Programs
 from pw_presubmit.install_hook import install_hook
 
@@ -621,7 +621,7 @@
 #
 
 OTHER_CHECKS = (
-    banned_words.banned_words,
+    inclusive_language.inclusive_language,
     # TODO(pwbug/45): Remove clang-tidy from OTHER_CHECKS when it passes.
     clang_tidy,
     # Build that attempts to duplicate the build OSS-Fuzz does. Currently
