diff --git a/docs/content/docs/1.guides/2.first-party.md b/docs/content/docs/1.guides/2.first-party.md
index b97969f42..7a208358e 100644
--- a/docs/content/docs/1.guides/2.first-party.md
+++ b/docs/content/docs/1.guides/2.first-party.md
@@ -5,7 +5,7 @@ description: Route third-party script traffic through a reverse proxy on your do
## The Problem
-Every third-party script your site loads connects your users directly to external servers. Each request shares the user's IP address, and many scripts go further: the X Pixel accesses 9 browser fingerprinting APIs (including `navigator.getBattery()`{lang="ts"}), sets 5 tracking cookies (`muc_ads`, `guest_id_marketing`, `guest_id_ads`, `personalization_id`, `guest_id`), and phones home to 3 separate domains. Microsoft Clarity reads 10 fingerprinting APIs across 3 domains. Even Google Analytics at 154 KB sends data that can be correlated across sites.
+Every third-party script your site loads connects your users directly to external servers. Each request shares the user's IP address, and many scripts go further: the X Pixel accesses 4 browser fingerprinting APIs (including `navigator.getBattery()`{lang="ts"}), sets 5 tracking cookies (`muc_ads`, `guest_id_marketing`, `guest_id_ads`, `personalization_id`, `guest_id`), and phones home to 3 separate domains. Microsoft Clarity reads 5 fingerprinting APIs across 3 domains. Even Google Analytics at 154 KB sends data that can be correlated across sites.
Ad blockers rightfully block these requests, which breaks analytics for sites that depend on them.
diff --git a/docs/content/docs/5.releases/1.v1.md b/docs/content/docs/5.releases/1.v1.md
index 84b2909ad..7205ad27c 100644
--- a/docs/content/docs/5.releases/1.v1.md
+++ b/docs/content/docs/5.releases/1.v1.md
@@ -11,7 +11,7 @@ Nuxt Scripts v1 is the first stable release, pushing the ecosystem forward for b
Every third-party script request exposes your users data to [fingerprinting](https://firstpartysimulator.net/learn).
-Different providers are more intrusive, for example, the X Pixel accesses 9 browser fingerprinting APIs (including `navigator.getBattery()`{lang="ts"}), sets 5 tracking cookies, and makes requests to 3 separate domains. Microsoft Clarity reads 10 fingerprinting APIs across 3 domains.
+Different providers are more intrusive, for example, the X Pixel accesses 4 browser fingerprinting APIs (including `navigator.getBattery()`{lang="ts"}), sets 5 tracking cookies, and makes requests to 3 separate domains. Microsoft Clarity reads 5 fingerprinting APIs across 3 domains.
First-party mode acts as a **reverse proxy**: Nuxt bundles scripts at build time and serves them from your domain, while runtime requests are securely forwarded through your server. Data sent to third-party servers gets anonymised: IPs (`180.233.124.74` -> `180.233.124.0`), browser versions (`Mozilla/5.0 (compatible; Chrome/120.0)`{lang="ts"}) and more. This is **auto-enabled** for all scripts that support it.
diff --git a/packages/script/src/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue b/packages/script/src/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue
index 96a663ef8..4f3c67501 100644
--- a/packages/script/src/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue
+++ b/packages/script/src/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue
@@ -99,6 +99,10 @@ const props = withDefaults(defineProps<{
* Additional attributes for the `
` element.
*/
imgAttrs?: ImgHTMLAttributes & ReservedProps & Record
+ /**
+ * Alt text for the map image. Override to provide a more descriptive label for screen readers.
+ */
+ alt?: string
}>(), {
zoom: 15,
scale: 2,
@@ -106,6 +110,7 @@ const props = withDefaults(defineProps<{
objectFit: 'cover',
width: 640,
height: 400,
+ alt: 'Google Maps',
})
defineSlots<{
@@ -232,7 +237,7 @@ const src = computed(() => {
const imgAttributes = computed(() => {
return defu(props.imgAttrs, {
src: src.value,
- alt: 'Google Maps',
+ alt: props.alt,
loading: props.loading,
style: {
width: '100%',
diff --git a/packages/script/src/runtime/components/ScriptGravatar.vue b/packages/script/src/runtime/components/ScriptGravatar.vue
index 324d47796..93eddc2a1 100644
--- a/packages/script/src/runtime/components/ScriptGravatar.vue
+++ b/packages/script/src/runtime/components/ScriptGravatar.vue
@@ -58,6 +58,8 @@ onMounted(() => {
>
diff --git a/packages/script/src/runtime/components/ScriptLoadingIndicator.vue b/packages/script/src/runtime/components/ScriptLoadingIndicator.vue
index c77d81432..97c2609d9 100644
--- a/packages/script/src/runtime/components/ScriptLoadingIndicator.vue
+++ b/packages/script/src/runtime/components/ScriptLoadingIndicator.vue
@@ -16,7 +16,7 @@ const styles = computed(() => ({
-
+