From cc5d0e6d6c2e348d11c1682c3250487d66b600b1 Mon Sep 17 00:00:00 2001 From: Andrew Duthie Date: Thu, 20 Jun 2024 14:43:24 -0400 Subject: [PATCH] Render lang attribute for email language preference changelog: Bug Fixes, Accessibility, Render email language preference as language of parts --- app/views/accounts/show.html.erb | 2 +- spec/views/accounts/show.html.erb_spec.rb | 30 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/views/accounts/show.html.erb b/app/views/accounts/show.html.erb index 23d491c2340..a0188aa4db5 100644 --- a/app/views/accounts/show.html.erb +++ b/app/views/accounts/show.html.erb @@ -25,7 +25,7 @@

<%= t('i18n.language') %>

-
+
<%= @presenter.user.email_language_preference_description %>
diff --git a/spec/views/accounts/show.html.erb_spec.rb b/spec/views/accounts/show.html.erb_spec.rb index 1923dfb8e7e..0734dc6c0f5 100644 --- a/spec/views/accounts/show.html.erb_spec.rb +++ b/spec/views/accounts/show.html.erb_spec.rb @@ -182,4 +182,34 @@ ) end end + + describe 'email language' do + context 'without explicit user language preference' do + let(:user) { create(:user, :fully_registered, email_language: nil) } + + before do + I18n.locale = :es + end + + it 'renders email language with language of parts as English' do + # Ensure that non-English content in English page is annotated with language. + # See: https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts + render + + expect(rendered).to have_css('[lang=en]', text: t('account.email_language.name.en')) + end + end + + context 'with user language preference' do + let(:user) { create(:user, :fully_registered, email_language: :es) } + + it 'renders email language with language of parts as that language' do + # Ensure that non-English content in English page is annotated with language. + # See: https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts + render + + expect(rendered).to have_css('[lang=es]', text: t('account.email_language.name.es')) + end + end + end end