aidCMO
OpenCMO free trial: enter one URL and open your own overseas growth console.
@@ -99,7 +108,7 @@OpenCMO — AI CMO growth console
]*)?>', text)
+ assert root_match, "frontend/index.html should declare
for React"
+ attrs = root_match.group(1) or ""
+ assert 'translate="no"' in attrs, "#root must carry translate=\"no\""
+ assert "notranslate" in attrs, "#root must include the 'notranslate' class"
+
+
+def test_static_seo_copy_remains_translatable() -> None:
+ """SEO/no-JS fallback copy lives outside #root; it should stay translatable
+ so crawlers and translated previews can still read it.
+ """
+ text = _strip_html_comments(_read_index_html())
+ main_match = re.search(r']*)?>', text)
+ assert main_match, "static SEO copy should be present"
+ attrs = main_match.group(1) or ""
+ assert 'translate="yes"' in attrs, (
+ "static SEO copy must explicitly opt back into translation, "
+ "otherwise the body-level translate=\"no\" would suppress it too"
+ )