Skip to content

feat(converter): add lang attribute to HTML output for accessibility#85

Merged
JSv4 merged 1 commit intomainfrom
feature/html-lang-attribute
Dec 20, 2025
Merged

feat(converter): add lang attribute to HTML output for accessibility#85
JSv4 merged 1 commit intomainfrom
feature/html-lang-attribute

Conversation

@JSv4
Copy link
Copy Markdown
Owner

@JSv4 JSv4 commented Dec 20, 2025

Summary

  • Adds lang attribute to <html> element for improved accessibility (screen readers, browser hyphenation)
  • Adds lang attribute to foreign text spans when language differs from document default
  • Adds DocumentLanguage setting to manually override document language

Changes

Core Implementation:

  • DocumentLanguage setting added to WmlToHtmlConverterSettings and HtmlConverterSettings
  • GetDocumentDefaultLanguage() helper extracts language from document settings
  • Language priority: w:themeFontLang → default paragraph style → "en-US" fallback
  • GetLangAttribute() now uses actual document default instead of hardcoded "en-US"

Full Stack:

  • WASM: Added documentLanguage parameter to ConvertDocxToHtmlComplete()
  • npm: Added documentLanguage?: string to ConversionOptions interface

Tests:

  • HC033: <html> gets lang from themeFontLang
  • HC034: DocumentLanguage setting overrides document
  • HC035: Fallback to "en-US" when not specified
  • HC036: HtmlConverterSettings.DocumentLanguage works

Test plan

  • All 1140 tests pass
  • WASM builds successfully
  • TypeScript compiles

Addresses converter gaps #10 and #11 from docs/architecture/wml_to_html_converter_gaps.md

- Add DocumentLanguage setting to override document language
- Add lang attribute to <html> element (auto-detected from document)
- Update GetLangAttribute() to use actual document default language
- Language detected from w:themeFontLang, default style, or fallback to "en-US"
- Foreign text spans get lang attribute when different from doc default
- Add WASM/npm support for documentLanguage option
- Add 4 new tests for language attribute functionality

Addresses converter gaps #10 (Document Language Attribute) and #11 (Foreign Text Spans)
@JSv4 JSv4 merged commit 05f1eee into main Dec 20, 2025
6 checks passed
@JSv4 JSv4 deleted the feature/html-lang-attribute branch December 20, 2025 23:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant