Type: JavaScript Property (navigator.languages)
Data Source: Browser Settings / Operating System
When Available: Always accessible via JavaScript
Return Type: Array of strings (ordered by preference)
The navigator.languages property returns a read-only array of strings representing the user's preferred languages in order of preference. Unlike navigator.language (singular) which returns only the most preferred language, this property provides the complete list of language preferences configured in the browser.
Historical Context:
navigator.languageAccept-Language HTTP header sent with requestsKey Difference from navigator.language:
navigator.language: Returns a single string (most preferred language)navigator.languages: Returns an array of all preferred languagesFormat: An ordered array where the first element is most preferred
Example Values:
| Array Value | Interpretation | User Profile |
|---|---|---|
["en-US"] |
English (US) only | Monolingual US user |
["en-GB", "en"] |
British English preferred, any English as fallback | UK user with broad English fallback |
["es-MX", "es", "en-US"] |
Mexican Spanish, then any Spanish, then US English | Bilingual user in Mexico/US |
["fr-CA", "en-CA", "fr", "en"] |
Canadian French, Canadian English, then broad fallbacks | Bilingual Canadian user |
["zh-CN", "zh", "en"] |
Simplified Chinese, any Chinese, then English | Chinese user with English backup |
["de-DE", "en-US", "fr-FR"] |
German, English, then French | Multilingual European user |
Note: The array length varies by user. Some users have one language, others configure multiple fallbacks.
Legitimate Uses:
Example Implementation:
A website might check if any of the user's languages match available translations, starting with the most preferred and working down the list.
How Languages Array is Populated:
| Platform | Language Source | Default Behavior |
|---|---|---|
| Chrome (All OS) | Chrome language settings | Returns all languages in configured order |
| Firefox (All OS) | Firefox language preferences | Returns all configured languages |
| Safari (macOS) | System Preferences > Language & Region | Returns system language list |
| Safari (iOS) | Settings > General > Language & Region | Returns preferred languages list |
| Edge | Edge language settings | Returns all configured languages |
Browser-Specific Notes:
Tracking Risk: MEDIUM
Privacy Concerns:
Uniqueness Analysis:
Why Medium Risk:
How to Manage Your Language Preferences:
Chrome:
navigator.languagenavigator.languages arrayFirefox:
Safari (macOS):
Safari (iOS):
Privacy-Enhanced Options:
Limitations:
Mozilla's comprehensive documentation on the languages property
The HTTP header that corresponds to navigator.languages
The standard defining language tag formatting
W3C guide to configuring multi-language preferences
Chrome's approach to handling multiple languages
HTTP specification for language-based content negotiation