From 6c64bf1a7cb1fb558198e5efc96243ddea11dc2d Mon Sep 17 00:00:00 2001 From: Steve Binkowski Date: Thu, 9 Jan 2025 16:17:02 -0500 Subject: [PATCH 1/2] Address tickets within the scope of NYS-184 accessibility mini-audit - NYS-191: Search input is missing an associated label - NYS-193: mobile menu button is missing an accessible name - NYS-196: Missing form label for tab inputs - NYS-197: incorrect semantics for tabs - NYS-201: Load More link does not announce to a screen reader user that more is now showing on the page - NYS-203: select dropdown missing associated label - NYS-205: Select filters missing associated label - NYS-206: Date input missing associated label - NYS-208: incorrect use of labels - NYS-215: select dropdowns are missing an associated label - NYS-230: Gaining keyboard focus on the search makes everything move - NYS-233: the Main `nav` needs to have an accessible name for screen readers - NYS-234: Mobile menu does not have proper semantics for screen readers - NYS-235: Mobile menu should close with "Esc" key - Ad hoc fix to implement proper dependency injection in global search --- ...orm_display.block_content.tabs.default.yml | 7 -- ...iew_display.block_content.tabs.default.yml | 9 -- ...field.block_content.tabs.field_tabs_no.yml | 21 ---- ...ld.storage.block_content.field_tabs_no.yml | 34 ------ config/sync/views.view.events.yml | 54 +++------ config/sync/views.view.session_calendar.yml | 4 +- .../custom/nys_search/nys_search.routing.yml | 2 +- .../src/Form/GlobalSearchAdvancedForm.php | 104 +++++++++++------- .../nys_search/src/Form/GlobalSearchForm.php | 5 +- .../nysenate_theme/nysenate_theme.theme | 15 ++- .../meeting-detail/meeting-detail.scss | 4 + .../nysenate-header/nysenate-header.js | 14 ++- .../nysenate-header/nysenate-header.scss | 2 +- .../nysenate-header/nysenate-header.twig | 6 +- .../src/patterns/global/global.scss | 7 +- .../block/block-content--tabs.html.twig | 83 +++++--------- ...oming-legislation--passed-senate.html.twig | 9 +- ...oming-legislation--signed-by-gov.html.twig | 9 +- 18 files changed, 162 insertions(+), 227 deletions(-) delete mode 100644 config/sync/field.field.block_content.tabs.field_tabs_no.yml delete mode 100644 config/sync/field.storage.block_content.field_tabs_no.yml diff --git a/config/sync/core.entity_form_display.block_content.tabs.default.yml b/config/sync/core.entity_form_display.block_content.tabs.default.yml index 20ac7b15ce..f7a0595b7f 100644 --- a/config/sync/core.entity_form_display.block_content.tabs.default.yml +++ b/config/sync/core.entity_form_display.block_content.tabs.default.yml @@ -6,7 +6,6 @@ dependencies: - block_content.type.tabs - field.field.block_content.tabs.field_block_views - field.field.block_content.tabs.field_tab_names - - field.field.block_content.tabs.field_tabs_no module: - viewsreference id: block_content.tabs.default @@ -32,12 +31,6 @@ content: size: 60 placeholder: '' third_party_settings: { } - field_tabs_no: - type: options_select - weight: 1 - region: content - settings: { } - third_party_settings: { } info: type: string_textfield weight: 0 diff --git a/config/sync/core.entity_view_display.block_content.tabs.default.yml b/config/sync/core.entity_view_display.block_content.tabs.default.yml index 08b7d8724c..b006387724 100644 --- a/config/sync/core.entity_view_display.block_content.tabs.default.yml +++ b/config/sync/core.entity_view_display.block_content.tabs.default.yml @@ -6,9 +6,7 @@ dependencies: - block_content.type.tabs - field.field.block_content.tabs.field_block_views - field.field.block_content.tabs.field_tab_names - - field.field.block_content.tabs.field_tabs_no module: - - options - viewsreference id: block_content.tabs.default targetEntityType: block_content @@ -32,13 +30,6 @@ content: third_party_settings: { } weight: 1 region: content - field_tabs_no: - type: list_key - label: hidden - settings: { } - third_party_settings: { } - weight: 0 - region: content hidden: entity_print_view_epub: true entity_print_view_pdf: true diff --git a/config/sync/field.field.block_content.tabs.field_tabs_no.yml b/config/sync/field.field.block_content.tabs.field_tabs_no.yml deleted file mode 100644 index 5be96b9d6e..0000000000 --- a/config/sync/field.field.block_content.tabs.field_tabs_no.yml +++ /dev/null @@ -1,21 +0,0 @@ -uuid: 11e4174c-7fe9-41d0-af72-055bd5053b91 -langcode: en -status: true -dependencies: - config: - - block_content.type.tabs - - field.storage.block_content.field_tabs_no - module: - - options -id: block_content.tabs.field_tabs_no -field_name: field_tabs_no -entity_type: block_content -bundle: tabs -label: 'Number of tabs' -description: '' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: list_string diff --git a/config/sync/field.storage.block_content.field_tabs_no.yml b/config/sync/field.storage.block_content.field_tabs_no.yml deleted file mode 100644 index 616bf343b8..0000000000 --- a/config/sync/field.storage.block_content.field_tabs_no.yml +++ /dev/null @@ -1,34 +0,0 @@ -uuid: ece095e0-4f6c-44ec-8dcc-a2a0ebfceb7f -langcode: en -status: true -dependencies: - module: - - block_content - - field_permissions - - options -third_party_settings: - field_permissions: - permission_type: public -id: block_content.field_tabs_no -field_name: field_tabs_no -entity_type: block_content -type: list_string -settings: - allowed_values: - - - value: two - label: Two - - - value: three - label: Three - - - value: four - label: Four - allowed_values_function: '' -module: options -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/config/sync/views.view.events.yml b/config/sync/views.view.events.yml index e19281408b..46afe46c25 100644 --- a/config/sync/views.view.events.yml +++ b/config/sync/views.view.events.yml @@ -1375,7 +1375,7 @@ display: exposed: true expose: operator_id: type_op - label: '' + label: 'Filter By Type' description: '' use_operator: false operator: type_op @@ -1389,16 +1389,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: true is_grouped: false group_info: @@ -1426,7 +1423,7 @@ display: exposed: true expose: operator_id: field_committee_target_id_op - label: '' + label: 'Filter By Committee' description: '' use_operator: false operator: field_committee_target_id_op @@ -1440,16 +1437,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: false is_grouped: false group_info: @@ -1483,7 +1477,7 @@ display: exposed: true expose: operator_id: '' - label: '' + label: 'Filter By Senator' description: '' use_operator: false operator: active_senators_filter_op @@ -1534,7 +1528,7 @@ display: exposed: true expose: operator_id: field_date_range_value_op - label: '' + label: 'Filter By Date' description: '' use_operator: false operator: field_date_range_value_op @@ -2913,7 +2907,7 @@ display: exposed: true expose: operator_id: type_op - label: '' + label: 'Filter By Type' description: '' use_operator: false operator: type_op @@ -2927,16 +2921,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: true is_grouped: false group_info: @@ -2964,7 +2955,7 @@ display: exposed: true expose: operator_id: field_committee_target_id_op - label: '' + label: 'Filter By Committee' description: '' use_operator: false operator: field_committee_target_id_op @@ -2978,16 +2969,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: false is_grouped: false group_info: @@ -3021,7 +3009,7 @@ display: exposed: true expose: operator_id: '' - label: '' + label: 'Filter By Senator' description: '' use_operator: false operator: active_senators_filter_op @@ -3072,7 +3060,7 @@ display: exposed: true expose: operator_id: field_date_range_value_op - label: '' + label: 'Filter By Date' description: '' use_operator: false operator: field_date_range_value_op @@ -3228,7 +3216,7 @@ display: exposed: true expose: operator_id: type_op - label: '' + label: 'Filter By Type' description: '' use_operator: false operator: type_op @@ -3242,16 +3230,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: true is_grouped: false group_info: @@ -3279,7 +3264,7 @@ display: exposed: true expose: operator_id: field_committee_target_id_op - label: '' + label: 'Filter By Committee' description: '' use_operator: false operator: field_committee_target_id_op @@ -3293,16 +3278,13 @@ display: authenticated: authenticated anonymous: '0' administrator: '0' - web_administrator: '0' frontpage_editor: '0' senator: '0' microsite_content_producer: '0' legislative_correspondent: '0' student_programs: '0' constituent: '0' - senate_services: '0' - student_contest_judge: '0' - experimental_content_producer: '0' + comment_moderator: '0' reduce: false is_grouped: false group_info: @@ -3336,7 +3318,7 @@ display: exposed: true expose: operator_id: '' - label: '' + label: 'Filter By Senator' description: '' use_operator: false operator: active_senators_filter_op @@ -3387,7 +3369,7 @@ display: exposed: true expose: operator_id: field_date_range_value_op - label: '' + label: 'Filter By Date' description: '' use_operator: false operator: field_date_range_value_op diff --git a/config/sync/views.view.session_calendar.yml b/config/sync/views.view.session_calendar.yml index 7881787668..c6517ff39c 100644 --- a/config/sync/views.view.session_calendar.yml +++ b/config/sync/views.view.session_calendar.yml @@ -401,8 +401,8 @@ display: value: min: '' max: '' - value: '2025' - type: date_year + value: 'this year' + type: offset group: 1 exposed: false expose: diff --git a/web/modules/custom/nys_search/nys_search.routing.yml b/web/modules/custom/nys_search/nys_search.routing.yml index a5db4b41b3..2d918ae82f 100644 --- a/web/modules/custom/nys_search/nys_search.routing.yml +++ b/web/modules/custom/nys_search/nys_search.routing.yml @@ -1,4 +1,4 @@ -nys_search.gobalSearch: +nys_search.globalSearch: path: '/search/global/result' defaults: _controller: '\Drupal\nys_search\Controller\GlobalSearchController::page' diff --git a/web/modules/custom/nys_search/src/Form/GlobalSearchAdvancedForm.php b/web/modules/custom/nys_search/src/Form/GlobalSearchAdvancedForm.php index 4cf4c4d6f2..4c2f6903b0 100644 --- a/web/modules/custom/nys_search/src/Form/GlobalSearchAdvancedForm.php +++ b/web/modules/custom/nys_search/src/Form/GlobalSearchAdvancedForm.php @@ -2,17 +2,19 @@ namespace Drupal\nys_search\Form; +use Drupal\Core\Database\Connection; +use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; use Drupal\nys_search\GlobalSearchAdvancedHelper; use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\RequestStack; /** * The Search advanced legislation form class. */ class GlobalSearchAdvancedForm extends FormBase { + /** * Search Advanced Legislation helper service. * @@ -21,11 +23,18 @@ class GlobalSearchAdvancedForm extends FormBase { protected GlobalSearchAdvancedHelper $helper; /** - * The request stack. + * Drupal's Entity Type Manager service. + * + * @var \Drupal\Core\Entity\EntityTypeManagerInterface + */ + protected EntityTypeManagerInterface $entityTypeManager; + + /** + * Drupal's Database Connection service. * - * @var \Symfony\Component\HttpFoundation\RequestStack + * @var \Drupal\Core\Database\Connection */ - protected $requestStack; + protected Connection $database; /** * Implements the create() method on the form controller. @@ -36,11 +45,12 @@ class GlobalSearchAdvancedForm extends FormBase { * @return static * The form object. */ - public static function create(ContainerInterface $container) { + public static function create(ContainerInterface $container): static { return new static( - $container->get('nys_search.helper'), - $container->get('request_stack') - ); + $container->get('nys_search.helper'), + $container->get('entity_type.manager'), + $container->get('database') + ); } /** @@ -48,12 +58,15 @@ public static function create(ContainerInterface $container) { * * @param \Drupal\nys_search\GlobalSearchAdvancedHelper $helper * The GlobalSearchAdvancedHelper service. - * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack - * The request stack service. + * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager + * Drupal's Entity Type Manager service. + * @param \Drupal\Core\Database\Connection $database + * Drupal's Database Connection service. */ - public function __construct(GlobalSearchAdvancedHelper $helper, RequestStack $request_stack) { + public function __construct(GlobalSearchAdvancedHelper $helper, EntityTypeManagerInterface $entityTypeManager, Connection $database) { $this->helper = $helper; - $this->requestStack = $request_stack; + $this->entityTypeManager = $entityTypeManager; + $this->database = $database; } /** @@ -63,14 +76,13 @@ public function __construct(GlobalSearchAdvancedHelper $helper, RequestStack $re * Senators array. */ public function getSenatorsList(): array { - $query = \Drupal::database()->select('taxonomy_term__field_senator_name', 's'); + $query = $this->database + ->select('taxonomy_term__field_senator_name', 's'); $query->fields('s', ['entity_id', 'field_senator_name_given']); $query->addExpression("CONCAT(s.field_senator_name_given,' ',s.field_senator_name_family)", 'senator_full_name'); $query->orderBy('s.field_senator_name_given'); - $results = []; - $results = $query->execute()->fetchAllKeyed(0, 2); - return $results; + return $query->execute()->fetchAllKeyed(0, 2); } /** @@ -80,14 +92,18 @@ public function getSenatorsList(): array { * Committee array. */ public function getCommitteeList(): array { - $committees = \Drupal::entityTypeManager() - ->getStorage('taxonomy_term') - ->loadByProperties(['vid' => 'committees']); - - $result = []; - $result['all'] = 'Filter By Committee'; - foreach ($committees as $committee) { - $result[ucwords($committee->id())] = $committee->label(); + $result = ['all' => 'Filter By Committee']; + + try { + $committees = $this->entityTypeManager + ->getStorage('taxonomy_term') + ->loadByProperties(['vid' => 'committees']); + + foreach ($committees as $committee) { + $result[ucwords($committee->id())] = $committee->label(); + } + } + catch (\Throwable) { } return $result; } @@ -99,13 +115,16 @@ public function getCommitteeList(): array { * Content Type array. */ public function getTypeList(): array { - $entityTypeManager = \Drupal::service('entity_type.manager'); - - $result = []; - $result['all'] = 'Filter By Type'; - $content_types = $entityTypeManager->getStorage('node_type')->loadMultiple(); - foreach ($content_types as $content_type) { - $result[$content_type->id()] = $content_type->label(); + $result = ['all' => 'Filter By Type']; + try { + $content_types = $this->entityTypeManager + ->getStorage('node_type') + ->loadMultiple(); + foreach ($content_types as $content_type) { + $result[$content_type->id()] = $content_type->label(); + } + } + catch (\Throwable) { } return $result; @@ -114,14 +133,14 @@ public function getTypeList(): array { /** * {@inheritdoc} */ - public function getFormId() { + public function getFormId(): string { return 'nys_search_global_form'; } /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state) { + public function buildForm(array $form, FormStateInterface $form_state): array { // Build your form here. $form['#cache']['contexts'][] = 'url.query_args'; $results_page = $this->helper->isResultsPage(); @@ -152,6 +171,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#attributes' => [ 'class' => ['sponsor'], ], + '#title_display' => 'invisible', + '#title' => 'Filter By Senator', ]; $form['committee'] = [ @@ -161,6 +182,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#attributes' => [ 'class' => ['committee'], ], + '#title_display' => 'invisible', + '#title' => 'Filter By Committee', ]; $form['type'] = [ @@ -170,6 +193,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#attributes' => [ 'class' => ['content-type'], ], + '#title_display' => 'invisible', + '#title' => 'Filter By Type', ]; $form['full_text'] = [ @@ -190,7 +215,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { /** * {@inheritdoc} */ - public function submitForm(array &$form, FormStateInterface $form_state) { + public function submitForm(array &$form, FormStateInterface $form_state): void { $values = $form_state->getValues(); $params = [ 'full_text' => $values['full_text'] ?: '', @@ -202,12 +227,13 @@ public function submitForm(array &$form, FormStateInterface $form_state) { // Filter out any empty values. $params = array_filter( - $params, function ($value) { - return $value !== ''; - } - ); + $params, + function ($value) { + return $value !== ''; + } + ); - $url = Url::fromRoute('nys_search.gobalSearch', [], ['query' => $params]); + $url = Url::fromRoute('nys_search.globalSearch', [], ['query' => $params]); $form_state->setRedirectUrl($url); } diff --git a/web/modules/custom/nys_search/src/Form/GlobalSearchForm.php b/web/modules/custom/nys_search/src/Form/GlobalSearchForm.php index 52ed41379d..db97bbbf96 100644 --- a/web/modules/custom/nys_search/src/Form/GlobalSearchForm.php +++ b/web/modules/custom/nys_search/src/Form/GlobalSearchForm.php @@ -37,7 +37,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { ], ]; - $node = \Drupal::routeMatch()->getParameter('node'); + $node = $this->routeMatch->getParameter('node'); if (($node instanceof Node) && ($node->bundle() == 'microsite_page')) { $senator_term = $node->field_senator_multiref?->entity ?? NULL; if ($senator_term) { @@ -55,12 +55,13 @@ public function buildForm(array $form, FormStateInterface $form_state) { 'class' => ['c-site-search--box', 'icon_after__search', 'form-text'], 'size' => '50', 'maxlength' => '255', + 'aria-label' => 'Search Term', ], ]; $form['submit'] = [ '#type' => 'submit', - '#value' => t('Search'), + '#value' => $this->t('Search'), '#attributes' => [ 'class' => [ 'c-site-search--btn', diff --git a/web/themes/custom/nysenate_theme/nysenate_theme.theme b/web/themes/custom/nysenate_theme/nysenate_theme.theme index c4bfa1d99b..ec81866cf5 100644 --- a/web/themes/custom/nysenate_theme/nysenate_theme.theme +++ b/web/themes/custom/nysenate_theme/nysenate_theme.theme @@ -2107,6 +2107,17 @@ function nysenate_theme_preprocess_views_view__events(&$variables) { // Invalidate cache tags on views:events. $variables['#cache']['tags'][] = 'views:events'; + + // Set filter titles to invisible for accessibility. + foreach ([ + 'type', + 'field_committee_target_id', + 'active_senators_filter', + 'date', + ] as $ctrl) { + $variables['exposed'][$ctrl]['#title_display'] = 'invisible'; + } + } /** @@ -2142,8 +2153,8 @@ function nysenate_theme_preprocess_views_view__news_by_issue__meeting_by_issue(& */ function nysenate_theme_preprocess_views_view__senator_and_committee_lists__senators_list(&$variables) { // Remove filter label. - $variables['exposed']['senator_committee_filter']['#title_display'] = 'visually_hidden'; - $variables['exposed']['field_party_value']['#title_display'] = 'visually_hidden'; + $variables['exposed']['senator_committee_filter']['#title_display'] = 'invisible'; + $variables['exposed']['field_party_value']['#title_display'] = 'invisible'; } /** diff --git a/web/themes/custom/nysenate_theme/src/patterns/components/meeting-detail/meeting-detail.scss b/web/themes/custom/nysenate_theme/src/patterns/components/meeting-detail/meeting-detail.scss index d1004bb8f1..2c9f1dcf6e 100644 --- a/web/themes/custom/nysenate_theme/src/patterns/components/meeting-detail/meeting-detail.scss +++ b/web/themes/custom/nysenate_theme/src/patterns/components/meeting-detail/meeting-detail.scss @@ -65,6 +65,10 @@ } } + div.display_block { + display: block; + } + .meta-comm-referral { > label { cursor: text; diff --git a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.js b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.js index 73a6a1edc1..e0b44025b4 100644 --- a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.js +++ b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.js @@ -43,6 +43,15 @@ ); this.jsSearchBox(isMicrositeLandingPage, micrositeMenuClone); this.mobileMenu(); + + // Add keypress event to close mobile menu. + document.addEventListener('keydown', (e) => { + if (e.keyCode == 27) { + document.body.classList.remove('nav-open'); + e.currentTarget.setAttribute('aria-expanded', 'false'); + document.querySelector('button.js-mobile-nav--btn.button--menu').focus(); + } + }); }, /** @@ -159,6 +168,8 @@ let isHeaderSearchButton = clickElem.currentTarget.closest('.c-header-bar'); navWraps.item(index).classList.toggle('search-open'); searchForms.item(index).classList.toggle('open'); + clickElem.currentTarget.setAttribute('aria-expanded', searchForms.item(index).classList.contains('open') ? 'true' : 'false'); + clickElem.currentTarget.innerHTML = (searchForms.item(index).classList.contains('open') ? 'close' : 'open') + ' search'; if (!isMicrositeLandingPage) { document.body.classList.toggle('search-open'); } @@ -179,8 +190,9 @@ */ mobileMenu: function () { const mobileMenu = document.querySelector('button.js-mobile-nav--btn'); - mobileMenu.addEventListener('click', () => { + mobileMenu.addEventListener('click', (e) => { document.body.classList.toggle('nav-open'); + e.currentTarget.setAttribute('aria-expanded', document.body.classList.contains('nav-open') ? 'true' : 'false'); }); }, diff --git a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.scss b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.scss index 63d31bbec3..99656598c7 100644 --- a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.scss +++ b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.scss @@ -771,7 +771,7 @@ nav ul.c-nav--list { .c-site-search--btn, .search__submit { cursor: pointer; position: absolute; - height: 45px; + height: 30px; width: 30px; top: 17px; right: 15px; diff --git a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.twig b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.twig index 2ed9c8563b..4bf557eadf 100644 --- a/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.twig +++ b/web/themes/custom/nysenate_theme/src/patterns/components/nysenate-header/nysenate-header.twig @@ -59,7 +59,7 @@ - + {% if actionbar.type != 'committee' %} {% block microsite_hero %} {% if microsite_hero %} @@ -79,7 +79,7 @@ {% else %}
-
- + {% if socials %}