Inclusive Language
The Mukoko ecosystem serves users across Africa — a continent of 1.4 billion people, 54 countries, and thousands of languages and cultures. Our language must be inclusive, respectful, and free of assumptions.
Pan-African context
Avoid geographic bias
- Do not treat any single country as representative of “Africa”
- Do not assume all African users share the same culture, language, or economic context
- Reference specific countries or regions when being specific is important
✓ "Available in Zimbabwe, South Africa, and Kenya"
✗ "Available across Africa" (when it is only in three countries)
✓ "Popular in Southern Africa"
✗ "Popular in Africa"Economic sensitivity
- Do not assume access to high-speed internet, expensive devices, or credit cards
- Design for the full range of economic contexts
- Avoid language that implies financial status
✓ "Works on any device"
✗ "Optimized for the latest smartphones"
✓ "Choose a plan that works for you"
✗ "Upgrade to premium for the full experience"Gender
- Use gender-neutral language by default
- Avoid assuming gender from names, roles, or contexts
✓ "They submitted the form"
✗ "He submitted the form"
✓ "The developer can configure..."
✗ "He or she can configure..."
✓ "Sales representative"
✗ "Salesman"
✓ "Chair" or "Chairperson"
✗ "Chairman"Technical terminology
Avoid exclusionary metaphors
Some common technical terms carry exclusionary connotations. Use neutral alternatives:
| Instead of | Use |
|---|---|
| master/slave | primary/replica |
| whitelist/blacklist | allowlist/blocklist |
| sanity check | validation check |
| dummy value | placeholder value |
| man-hours | person-hours, work hours |
| grandfathered | legacy, exempt |
These alternatives are already used in the Mukoko codebase (e.g., ai-safety.ts uses “allowlist validation”).
Ability and disability
- Do not use disability as a metaphor
- Focus on what the system does, not what the user cannot do
✓ "This feature is not available offline"
✗ "You are unable to use this feature offline"
✓ "Screen reader compatible"
✗ "For blind users"Names and identity
Name fields
- Use a single “Full name” field rather than forcing first/last name separation
- African naming conventions vary widely — some cultures use patronymic names, some use clan names, some have single names
- Never validate name length (some names are one character, some are very long)
- Support Unicode characters in name fields
{/* Correct — flexible name input */}
<Field>
<FieldLabel>Full name</FieldLabel>
<Input name="fullName" />
</Field>
{/* Incorrect — assumes Western naming convention */}
<Field>
<FieldLabel>First name</FieldLabel>
<Input name="firstName" />
</Field>
<Field>
<FieldLabel>Last name</FieldLabel>
<Input name="lastName" />
</Field>Phone numbers
- Always support international format with country code
- Do not assume a default country code
- Support the
+prefix
Addresses
- Do not assume a Western address format (street, city, state, zip)
- Many African addresses use landmarks, area names, or postal agency addresses
- Make address fields flexible, not rigidly structured
Religion and culture
- Do not assume religious holidays or observances
- Avoid expressions rooted in specific religious traditions
- Use secular date references: “end of year” not “Christmas period”
Age and experience
- Do not assume technical literacy or inexperience based on age
- Avoid patronizing language in tutorials: “simply” and “just” imply the task is easy
- Write instructions that respect all experience levels
✓ "Run the install command"
✗ "Simply run the install command"
✓ "Configure the theme provider"
✗ "Just add the theme provider"Review checklist
When reviewing content, ask:
- Would this make sense to someone in Lagos, Nairobi, Harare, and Cape Town?
- Does it avoid assumptions about gender, religion, or economic status?
- Are technical terms free of exclusionary metaphors?
- Do name and identity fields accommodate diverse naming conventions?
- Is the tone respectful and empowering, not patronizing?
Last updated on