From 2852cb27ec064ad0fe359c8f8999182686827f99 Mon Sep 17 00:00:00 2001
From: Pamela Barone <31375-pameeela@users.noreply.drupalcode.org>
Date: Wed, 22 Jan 2025 03:43:30 +0000
Subject: [PATCH] Issue #3500408 by pameeela, mherchel, thejimbirch,
 katannshaw: Home page lacks an h1 since page title does not display

---
 .../block.block.drupal_cms_olivero_page_title.yml         | 6 +-----
 drupal_cms_olivero/css/base/utility.css                   | 8 ++++++++
 drupal_cms_olivero/drupal_cms_olivero.libraries.yml       | 1 +
 drupal_cms_olivero/drupal_cms_olivero.theme               | 6 ++++++
 4 files changed, 16 insertions(+), 5 deletions(-)
 create mode 100644 drupal_cms_olivero/css/base/utility.css

diff --git a/drupal_cms_olivero/config/optional/block.block.drupal_cms_olivero_page_title.yml b/drupal_cms_olivero/config/optional/block.block.drupal_cms_olivero_page_title.yml
index 94ce4428f..0e5bc0bfa 100644
--- a/drupal_cms_olivero/config/optional/block.block.drupal_cms_olivero_page_title.yml
+++ b/drupal_cms_olivero/config/optional/block.block.drupal_cms_olivero_page_title.yml
@@ -14,8 +14,4 @@ settings:
   label: 'Page title'
   label_display: '0'
   provider: core
-visibility:
-  request_path:
-    id: request_path
-    negate: true
-    pages: '<front>'
+visibility: {  }
diff --git a/drupal_cms_olivero/css/base/utility.css b/drupal_cms_olivero/css/base/utility.css
new file mode 100644
index 000000000..d459517a3
--- /dev/null
+++ b/drupal_cms_olivero/css/base/utility.css
@@ -0,0 +1,8 @@
+/*
+ * Utility CSS classes.
+ */
+
+.visually-hidden {
+  /* Necessary to override Olivero's specificity. */
+  width: 1px !important;
+}
diff --git a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
index 61d9a2478..b17685a09 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
+++ b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
@@ -4,6 +4,7 @@ global-styling:
       css/base/base.css: {}
       css/base/buttons.css: {}
       css/base/typography.css: {}
+      css/base/utility.css: {}
     component:
       css/components/form.css: {}
 views:
diff --git a/drupal_cms_olivero/drupal_cms_olivero.theme b/drupal_cms_olivero/drupal_cms_olivero.theme
index 2d6becceb..8e56847a1 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.theme
+++ b/drupal_cms_olivero/drupal_cms_olivero.theme
@@ -78,4 +78,10 @@ function drupal_cms_olivero_preprocess_block(&$variables): void {
   if (str_replace($wide_content, '', strtolower($plugin_id)) !== strtolower($plugin_id)) {
     $variables['attributes']['class'][] = 'wide-content';
   }
+
+  // Visually hide the page title on home
+  $is_front = \Drupal::service('path.matcher')->isFrontPage();
+  if ($is_front && $plugin_id === 'page_title_block') {
+    $variables['attributes']['class'][] = 'visually-hidden';
+  }
 }
-- 
GitLab