From 273ea91378795a628f5bf9ade7c6ecc3a28b85f7 Mon Sep 17 00:00:00 2001 From: evan108108 Date: Fri, 27 Mar 2026 21:04:55 -0400 Subject: [PATCH] fix: navigator.languages should include base language per spec Per the HTML spec, navigator.languages should return the user's preferred languages. Most browsers return at least ["en-US", "en"] to include the base language tag alongside the regional variant. This matches Chrome, Firefox, and Safari behavior and improves compatibility with sites that check for language negotiation. --- src/browser/tests/navigator/navigator.html | 3 ++- src/browser/webapi/Navigator.zig | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/browser/tests/navigator/navigator.html b/src/browser/tests/navigator/navigator.html index b82c6e38..c7d21dce 100644 --- a/src/browser/tests/navigator/navigator.html +++ b/src/browser/tests/navigator/navigator.html @@ -15,8 +15,9 @@ testing.expectEqual(true, validPlatforms.includes(navigator.platform)); testing.expectEqual('en-US', navigator.language); testing.expectEqual(true, Array.isArray(navigator.languages)); - testing.expectEqual(1, navigator.languages.length); + testing.expectEqual(2, navigator.languages.length); testing.expectEqual('en-US', navigator.languages[0]); + testing.expectEqual('en', navigator.languages[1]); testing.expectEqual(true, navigator.onLine); testing.expectEqual(true, navigator.cookieEnabled); testing.expectEqual(true, navigator.hardwareConcurrency > 0); diff --git a/src/browser/webapi/Navigator.zig b/src/browser/webapi/Navigator.zig index 49f1f716..8de0d163 100644 --- a/src/browser/webapi/Navigator.zig +++ b/src/browser/webapi/Navigator.zig @@ -40,8 +40,8 @@ pub fn getUserAgent(_: *const Navigator, page: *Page) []const u8 { return page._session.browser.app.config.http_headers.user_agent; } -pub fn getLanguages(_: *const Navigator) [1][]const u8 { - return .{"en-US"}; +pub fn getLanguages(_: *const Navigator) [2][]const u8 { + return .{ "en-US", "en" }; } pub fn getPlatform(_: *const Navigator) []const u8 {