Inclusive language
This page documents a MediaWiki development guideline, crafted over time by developer consensus (or sometimes by proclamation from a lead developer) |
We want to encourage a culture of inclusivity, and part of doing that is making sure we use appropriate language where we can.
While some people may argue that these words aren't offensive to them, or that the words were never added with an offensive intention, they need to be aware that these words are potentially offensive to other groups of people, and we should endeavour to remove the usages.
This effort also helps fulfill our commitment to the Code of Conduct :
In the interest of fostering an open and welcoming community, we are committed to making participation in Wikimedia technical projects a respectful and harassment-free experience for everyone [...]
Terms to avoid and their alternatives
The following list is incomplete. See the #Resources section below for other recommendations. We use different alternative words in different contexts, for better grammatical or technical accuracy.
Words to be avoided | Suggested alternative words | Context |
---|---|---|
blacklist | denylist, deny, exclude, prohibit, forbid, mute, (But not "block" or "ban" because of existing MediaWiki meanings) | Avoid language that perpetuates discrimination |
whitelist | allowlist, allow, include, permit | Avoid language that perpetuates discrimination |
master | primary, source, main, development branch | Avoid language that perpetuates discrimination |
slave | replica, secondary | Avoid language that perpetuates discrimination |
guys | people, folks | Avoid unnecessarily gendered language |
Words that assume someone's gender, including "sir"/"madam" | Gender-neutral terms or the person's name; or check their userpage, Phab profile, etc., to see if they've shared how they identify | Avoid misgendering |
sanity check | is valid, is correct, integrity check, final check, quick check, completeness check, confidence check, coherence check, double check | Avoid ableist language |
sane | reasonable, typical, common | Avoid ableist language |
crazy, insane | wild, confusing, confounding | Avoid ableist language |
blindly, dumb | mindlessly, without validating | Avoid ableist language |
crippled | slowed, broken | Avoid ableist language |
kill switch, kill it with fire | off switch, emergency switch, feature flag, remove | Avoid unnecessarily violent language |
grandfathered | legacy, exempt | Avoid language that perpetuates discrimination |
handicap | hurt, negatively affect | Avoid ableist language |
(In some contexts) disable/disabled | Guides vary, with some stating that it is acceptable to use it (perhaps just in technical documentation), and others recommending replacement with 'deactivate, inactive, unavailable, turn off, deselect'.[1][2][3] | Avoid ableist language |
abort | cancel, force quit, end, halt, stop, hard stop | Politically charged term outside of computing. Avoid unnecessarily violent language. |
blackhat, whitehat | unethical hacker, attacker, ethical hacker | Avoid language that perpetuates discrimination |
tribe | team, squad, group | Can be assocaited with colonialism / cultural approriation. Avoid language that perpetuates discrimination. |
It is noted that there are some cases where we may not be able to change/remove some of our usages of these words, such as until the upstream developers has fixed them and it trickles down into our deployed software. This is okay as it is out of our control. It could be worth checking with the upstream if they plan to fix similar issues in their own codebases. However, we can and should address these words in our codebases when we are able to.
How to help
If you're looking to help with this effort, task T254646 is a good starting point for some discussion around the issue, and also to find specific tasks for areas of code that needs updating.
Some of these may be as simple as updating/improving comments and variable names.
Others may be more complex and need functions and hooks renaming, while following our stable interface policy .
Some usages may need to stay around for longer, but will generally stop being the canonical code, showing the intention for this to be removed in the near future.
Resources
- Other organisations' related guidelines and documentation (via cdanis and ietf which list many more)
- American Chemical Society Inclusivity Style Guide
- Android Open Source Project's "Coding with Respect"
- Apple's Style Guide - (section on inclusive language, entry on master/slave, entry on blacklist/whitelist)
- Bluetooth SIG's "Appropriate Language Mapping Tables"
- Chromium's "Inclusive Code" document
- Google's "Writing Inclusive Documentation"
- Google's "Developer documentation style guide word list"
- Internet Engineering Task Force:
- Terminology, Power, and Inclusive Language in Internet-Drafts and RFCs (draft v.4)
- Inclusive terminology in IETF Documents (work in progress)
- Microsoft's "Bias-free communication" document
- Twitter Engineering
- W3C Manual of Style
- Intuit's Word list
- Inclusive Naming Initiative
- WriteTheDocs' Reducing bias in your writing
- Woke, a non-inclusive language detection tool
- Digital Journalism Style Guide of Inclusive Language - Language Please
Further reading
- "UK NCSC to stop using 'whitelist' and 'blacklist' due to racial stereotyping", ZDNet (2020)
- "‘Master/Slave’ Terminology Was Removed from Python Programming Language", Vice (2018)
- "“Blacklists” and “whitelists”: a salutary warning concerning the prevalence of racist language in discussions of predatory publishing", Journal of the Medical Library Association (2018)
- "Racism in the English Language", Robert B. Moore (1976)
- "Is the English Language Anybody's Enemy?", ETC: A Review of General Semantics (1975)
- "The Racist Use of the English Language", Journal of Black Studies and Research (1973)
- "That Word Black", Langston Hughes (1958)
- "Use This Rubric for More Inclusive Language, and Other Actions for Allies", Better Allies® blog (2020)