From 971b4d0839eab09c2741cf040d2914521b9fee05 Mon Sep 17 00:00:00 2001
From: Viola Elsenhans <elsenhans@ub.uni-leipzig.de>
Date: Mon, 27 Mar 2023 15:31:48 +0200
Subject: [PATCH] refs #23430 [finc] use aside for sidebars / Restructuring
 Sidebar Semantics

* remove role=none
* add aria-label for nav
* adapt comments

co-authored by: Claas Kazzer <kazzer@uni-leipzig.de>
* refines sidebar semantic structure by adding <section>, <nav> and <aside> respectively
* adds translation for my account sidebar section
* corrects badge padding for favorites menu item
* adds class for styling favorites menu item
---
 local/languages/de.ini                        |  5 +-
 local/languages/en.ini                        |  7 +-
 themes/finc/scss/_customVariables.scss        |  7 +-
 themes/finc/scss/components/_sidebar.scss     |  9 +++
 .../DefaultRecord/list-entry.phtml            |  5 +-
 .../RecordDriver/DefaultRecord/toolbar.phtml  | 16 ++--
 .../templates/RecordTab/collectionlist.phtml  |  6 +-
 themes/finc/templates/Related/Similar.phtml   | 43 +++++++++++
 themes/finc/templates/cart/cart.phtml         |  9 ++-
 themes/finc/templates/collection/view.phtml   | 22 +++++-
 themes/finc/templates/librarycards/home.phtml |  6 +-
 .../templates/myresearch/acquisition.phtml    |  5 +-
 .../templates/myresearch/checkedout.phtml     |  5 +-
 .../finc/templates/myresearch/editlist.phtml  |  5 +-
 themes/finc/templates/myresearch/fines.phtml  |  5 +-
 .../templates/myresearch/historicloans.phtml  |  5 +-
 themes/finc/templates/myresearch/holds.phtml  |  5 +-
 .../templates/myresearch/illrequests.phtml    |  5 +-
 themes/finc/templates/myresearch/menu.phtml   | 74 +++++++++++--------
 themes/finc/templates/myresearch/mylist.phtml |  5 +-
 .../templates/myresearch/newpassword.phtml    |  6 +-
 .../finc/templates/myresearch/profile.phtml   |  5 +-
 themes/finc/templates/myresearch/setpin.phtml |  5 +-
 .../myresearch/storageretrievalrequests.phtml |  5 +-
 themes/finc/templates/record/view.phtml       | 29 +++++++-
 .../templates/search/advanced/layout.phtml    |  6 +-
 .../search/bulk-action-buttons.phtml          |  2 +-
 themes/finc/templates/search/history.phtml    |  5 +-
 .../templates/search/reservessearch.phtml     |  5 +-
 themes/finc/templates/search/results.phtml    |  5 +-
 30 files changed, 225 insertions(+), 97 deletions(-)
 create mode 100644 themes/finc/templates/Related/Similar.phtml

diff --git a/local/languages/de.ini b/local/languages/de.ini
index 9ca0cb8c1ef..8dcdc1821bd 100644
--- a/local/languages/de.ini
+++ b/local/languages/de.ini
@@ -2109,6 +2109,7 @@ Additional Titles = "Weitere Titel"
 ; Aria labels for <nav> and other containers
 main_navigation = "Hauptnavigation"
 aria_search_header = "Bedienelemente zur Steuerung der Ansicht"
+bulk_action_navigation = "Suchergebnisse weiterverarbeiten"
 
 ; 22240
 No linguistic content = "Nichtsprachlicher Inhalt"
@@ -2125,4 +2126,6 @@ holds_available_tooltip = "Abholbereit"
 holds_in_transit_tooltip = "Unterwegs zum Abholort"
 storageretrievalrequest_available_tooltip = "Abholbereit"
 storageretrievalrequest_in_transit_tooltip = "Unterwegs zum Abholort"
-mediareadtopickup_tooltip = "Abholbereit"
\ No newline at end of file
+mediareadtopickup_tooltip = "Abholbereit"
+
+MyAccountSidebar = "Seitenleiste mit Kontomenü"
\ No newline at end of file
diff --git a/local/languages/en.ini b/local/languages/en.ini
index 63e7bbbb1dc..0f683fb5e77 100644
--- a/local/languages/en.ini
+++ b/local/languages/en.ini
@@ -2192,8 +2192,9 @@ load_tab_content_hint = "Click to load tab content."
 Additional Titles = "Additional Titles"
 
 ; Aria labels for <nav> and other containers
-main_navigation = "Hauptnavigation"
+main_navigation = "Main navigation"
 aria_search_header = "List view controls"
+bulk_action_navigation = "Process search results"
 
 ; 22240
 No linguistic content = "No linguistic content"
@@ -2211,4 +2212,6 @@ holds_available_tooltip = "Available for Pickup"
 holds_in_transit_tooltip = "In Transit to Pickup Location"
 storageretrievalrequest_available_tooltip = "Available for Pickup"
 storageretrievalrequest_in_transit_tooltip = "In Transit to Pickup Location"
-mediareadtopickup_tooltip = "Available for Pickup"
\ No newline at end of file
+mediareadtopickup_tooltip = "Available for Pickup"
+
+MyAccountSidebar = "Sidebar with My Account menu"
\ No newline at end of file
diff --git a/themes/finc/scss/_customVariables.scss b/themes/finc/scss/_customVariables.scss
index 273f4618426..90ffc2c4f9d 100644
--- a/themes/finc/scss/_customVariables.scss
+++ b/themes/finc/scss/_customVariables.scss
@@ -1153,7 +1153,7 @@ $sidebar-facet-active-background-color: $brand-warning !default;
 $sidebar-facet-active-color: $black !default;
 $sidebar-facet-active-hover-color: $btn-primary-color !default;
 $sidebar-facet-active-text-inside-padding-left: 1.25em !default;
-$sidebar-facet-active-text-inside-padding-left-sm: 1.0em !default;
+$sidebar-facet-active-text-inside-padding-left-sm: 1em !default;
 $sidebar-or-facet-text-indent: -3px !default;
 $sidebar-facet-my-account-padding: 0 !default;
 $sidebar-facet-my-account-link-width: 100% !default;
@@ -1165,6 +1165,11 @@ $sidebar-facet-title-padding: 0 !default;
 $sidebar-facet-title-background-color: $brand-secondary !default;
 $sidebar-facet-title-background-color-focus-hover: $button-title-hover-bg !default;
 
+// '.badge' in My Account requires a different right and top-padding from standard badges as in facets
+$sidebar-my-account-lists-badge-right-padding: 0 !default;
+$sidebar-my-account-lists-badge-top-padding: 0 !default;
+
+
 $sidebar-my-account-danger-success-warning-background: transparent !default;
 $sidebar-my-account-danger-success-warning-padding: 0 !default;
 
diff --git a/themes/finc/scss/components/_sidebar.scss b/themes/finc/scss/components/_sidebar.scss
index 7e63987a9db..9be76eeff5d 100644
--- a/themes/finc/scss/components/_sidebar.scss
+++ b/themes/finc/scss/components/_sidebar.scss
@@ -128,6 +128,7 @@
     padding: $sidebar-item-padding;
   }
 
+
   // Focus and hover behaviour for facet titles
   .title {
     background-color: $sidebar-facet-title-background-color;
@@ -299,6 +300,14 @@
   }
 
 
+  &.lists {
+    // add exception for Favorites badges in My Account;
+    // based on the other badges such as '.ok', '.overdue' etc. they are styled as '.badge.lists'
+    padding-right: $sidebar-my-account-lists-badge-right-padding;
+    padding-top: $sidebar-my-account-lists-badge-top-padding;
+  }
+
+
   // light color on dark, when active (Facets + My Account) - we need the parent for specificity
   .facet.active > &,
   .sidebar a.active > & {
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
index a408c7ff4d7..d4411701ac8 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
@@ -238,8 +238,9 @@
               aria-label="<?=$this->transEscAttr('Delete').': '.$this->record($this->driver)->getTitleHtml()?>">
               <?=$this->transEsc('Delete') ?>
             </a>
+            <?php /* finc: remove role="none" of li-elements */ ?>
             <ul class="dropdown-menu" role="menu" aria-labelledby="<?= $dLabel ?>">
-              <li role="none">
+              <li>
                 <?php /* #17711 give user feedback and dont reload page after deleting */ ?>
                 <a role="menuitem" href="javascript:document.getElementById('<?=$dLabel?>').focus();" title="<?= $this->transEscAttr('confirm_delete_brief') ?>" onClick="
                   let next = $(this).closest('.result.ajaxItem').next('.result.ajaxItem').find('.del-button');
@@ -269,7 +270,7 @@
                   <?=$this->transEsc('confirm_dialog_yes')?>
                 </a>
               </li>
-              <li role="none">
+              <li>
                 <a role="menuitem" href="javascript:document.getElementById('<?=$dLabel?>').focus();"><?=$this->transEsc('confirm_dialog_no')?></a>
               </li>
             </ul>
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/toolbar.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/toolbar.phtml
index 9e243714b8a..5a4520f3236 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/toolbar.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/toolbar.phtml
@@ -14,7 +14,7 @@
   <?php /* finc adds toggler-off button, CK */ ?>
   <button class="close-offcanvas btn btn-primary" data-toggle="offcanvas"><?= $this->transEsc('navigate_back') ?></button>
   <?php /* finc: we use nav-stacked for display in sidebar, CK */
-        /* should we remove role="none" in li-elements?? */
+        /* finc: remove role="none" of li-elements */
   ?>
   <ul class="nav nav-pills nav-stacked hidden-print">
     <?php if (count($this->driver->getCitationFormats()) > 0): ?>
@@ -34,18 +34,18 @@
     <?php endif; ?>
     <?php /* finc: we don't use sms, CK
     <?php if ($this->accountCapabilities()->getSmsSetting() !== 'disabled'): ?>
-      <li role="none"><a class="sms-record" data-lightbox href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" rel="nofollow"><i class="fa fa-mobile" aria-hidden="true"></i> <?=$this->transEsc('Text this')?></a></li>
+      <li><a class="sms-record" data-lightbox href="<?=$this->recordLink()->getActionUrl($this->driver, 'SMS')?>" rel="nofollow"><i class="fa fa-mobile" aria-hidden="true"></i> <?=$this->transEsc('Text this')?></a></li>
     <?php endif; ?>
     */ ?>
-    <li role="none"><a class="mail-record" data-lightbox href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" rel="nofollow"><i class="fa fa-envelope" aria-hidden="true"></i> <?=$this->transEsc('Email this')?></a></li>
+    <li><a class="mail-record" data-lightbox href="<?=$this->recordLink()->getActionUrl($this->driver, 'Email')?>" rel="nofollow"><i class="fa fa-envelope" aria-hidden="true"></i> <?=$this->transEsc('Email this')?></a></li>
     <?php $exportFormats = $this->export()->getFormatsForRecord($this->driver); ?>
     <?php if(count($exportFormats) > 0): ?>
-      <li role="none" class="dropdown">
+      <li class="dropdown">
         <?php /* finc: remove classname toolbar-btn */ ?>
         <a class="export-toggle btn-type-export dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>" rel="nofollow" aria-expanded="false" aria-controls="export-options"><?=$this->transEsc('Export Record') ?></a>
         <ul class="dropdown-menu" id="export-options" role="menu">
           <?php foreach ($exportFormats as $exportFormat): ?>
-            <li role="none">
+            <li>
               <a <?php if ($this->export()->needsRedirect($exportFormat)): ?>target="<?=$this->escapeHtmlAttr($exportFormat)?>Main" <?php endif; ?>href="<?=$this->recordLink()->getActionUrl($this->driver, 'Export')?>?style=<?=$this->escapeHtmlAttr($exportFormat)?>" rel="nofollow" role="menuitem">
                 <?=$this->transEsc('Export to')?> <?=$this->transEsc($this->export()->getLabelForFormat($exportFormat))?>
               </a>
@@ -58,7 +58,7 @@
     <?php if ($this->userlist()->getMode() !== 'disabled'): ?>
       <?php /* finc: we use title=... in link below, CK */ ?>
       <?php /* finc: title was set in #14450 and removed in #15055 */ ?>
-      <li role="none">
+      <li>
         <?php if ($this->permission()->allowDisplay('feature.Favorites')): ?>
           <?php /* finc: remove classname toolbar-btn */ ?>
           <a class="save-record btn-type-save" data-lightbox href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" rel="nofollow"><?=$this->transEsc('Add to favorites')?></a>
@@ -68,10 +68,10 @@
       </li>
     <?php endif; ?>
     <?php if (!empty($addThis)): ?>
-      <li role="none"><a class="addThis addthis_button" href="https://www.addthis.com/bookmark.php?v=250&amp;pub=<?=urlencode($addThis)?>"><i class="fa fa-bookmark" aria-hidden="true"></i> <?=$this->transEsc('Bookmark')?></a></li>
+      <li><a class="addThis addthis_button" href="https://www.addthis.com/bookmark.php?v=250&amp;pub=<?=urlencode($addThis)?>"><i class="fa fa-bookmark" aria-hidden="true"></i> <?=$this->transEsc('Bookmark')?></a></li>
     <?php endif; ?>
     <?php /* finc adds bookbag feature */ ?>
-    <li role="none" class="bookbag-menu">
+    <li class="bookbag-menu">
       <?=$this->render('record/cart-buttons.phtml', ['id' => $this->driver->getUniqueId(), 'source' => $this->driver->getSourceIdentifier()]); ?>
     </li>
   </ul>
diff --git a/themes/finc/templates/RecordTab/collectionlist.phtml b/themes/finc/templates/RecordTab/collectionlist.phtml
index 1dd57ee7659..b44ba7c72df 100644
--- a/themes/finc/templates/RecordTab/collectionlist.phtml
+++ b/themes/finc/templates/RecordTab/collectionlist.phtml
@@ -110,8 +110,8 @@
   </div>
 </div>
 
-<?php /* finc: keep '.bottom' to differentiate top and bottom sidebars, CK */ ?>
-<div class="bottom <?=$this->layoutClass('sidebar')?>">
+<?php /* finc: keep '.bottom' to differentiate top and bottom sidebars, CK; use section for sidebar #23430 */ ?>
+<section class="bottom <?=$this->layoutClass('sidebar')?>">
 <?php /* finc: we use search in sidebar, not in mainbody above, CK */ ?>
   <h2><?=$this->transEsc('Search Collection Items')?></h2>
   <form class="form-inline" role="form" method="get" name="keywordFilterForm" id="keywordFilterForm">
@@ -135,5 +135,5 @@
   <?php foreach ($results->getRecommendations('side') as $current): ?>
     <?=$this->recommend($current)?>
   <?php endforeach; ?>
-</div>
+</section>
 <!-- finc: RecordTab - collectionlist - END -->
\ No newline at end of file
diff --git a/themes/finc/templates/Related/Similar.phtml b/themes/finc/templates/Related/Similar.phtml
new file mode 100644
index 00000000000..b29eed73255
--- /dev/null
+++ b/themes/finc/templates/Related/Similar.phtml
@@ -0,0 +1,43 @@
+<!-- finc - Related - Similar -->
+<?php
+/**
+* origin: vufind/BS3
+* called by view helper/controller:
+  - record/view.phtml calls this page
+* usage:
+  - renders similar items in special section of record view sidebar
+  - switch this on in config.ini like so:
+    WorldCatSimilar - Similarity based on WorldCat lookup
+    related[] = "Similar"
+* modified for finc:
+  - Adds <aside> for wrapping related items display
+* configured in: {}
+*/
+?>
+
+<aside>
+  <h2><?=$this->transEsc('Similar Items')?></h2>
+  <?php $similarRecords = $this->related->getResults(); ?>
+  <?php if (!empty($similarRecords)): ?>
+    <ul class="list-group">
+      <?php foreach ($similarRecords as $data): ?>
+        <li class="list-group-item">
+          <?php $formats = $data->getFormats(); ?>
+          <i class="fa fa-x<?php if (count($formats) > 0): ?> fa-<?=preg_replace('/[^a-z0-9]/', '', strtolower($formats[0]))?>" title="<?=$formats[0] ?><?php endif; ?>"></i>
+          <a href="<?=$this->recordLink()->getUrl($data)?>">
+            <?=$this->escapeHtml($data->getTitle())?>
+          </a>
+          <?php $authors = $data->getPrimaryAuthors(); if (!empty($authors)): ?>
+            <br/><?=$this->transEsc('by')?>: <?=$this->escapeHtml($authors[0]);?><?php if (count($authors) > 1): ?>, <?=$this->transEsc('more_authors_abbrev')?><?php endif; ?>
+          <?php endif; ?>
+          <?php $pubDates = $data->getPublicationDates(); if (!empty($pubDates)): ?>
+            <br/><?=$this->transEsc('Published')?>: (<?=$this->escapeHtml($pubDates[0])?>)
+          <?php endif; ?>
+        </li>
+      <?php endforeach; ?>
+    </ul>
+  <?php else: ?>
+    <p><?=$this->transEsc('Cannot find similar records')?></p>
+  <?php endif; ?>
+</aside>
+<!-- finc - Related - Similar -- END -->
\ No newline at end of file
diff --git a/themes/finc/templates/cart/cart.phtml b/themes/finc/templates/cart/cart.phtml
index 6bff5ff8b40..4e6cc6dce33 100644
--- a/themes/finc/templates/cart/cart.phtml
+++ b/themes/finc/templates/cart/cart.phtml
@@ -41,11 +41,12 @@
         <button type="submit" name="delete" class="toolbar-btn btn-type-delete dropdown-toggle" data-toggle="dropdown" id="cart-delete-label" value="1">
           <?=$this->transEsc('Delete')?>
         </button>
+        <?php /* finc: remove role="none" of li-elements */ ?>
         <ul class="dropdown-menu" role="menu" aria-labelledby="cart-delete-label">
-          <li role="none">
+          <li>
             <a href="javascript:" id="cart-confirm-delete" title="<?=$this->transEscAttr('confirm_delete')?>" role="menuitem"><?=$this->transEscAttr('confirm_dialog_yes')?></a>
           </li>
-          <li role="none">
+          <li>
             <a role="menuitem"><?=$this->transEsc('confirm_dialog_no')?></a>
           </li>
         </ul>
@@ -55,10 +56,10 @@
           <?=$this->transEsc('Empty Book Bag')?>
         </button>
         <ul class="dropdown-menu" role="menu" aria-labelledby="cart-empty-label">
-          <li role="none">
+          <li>
             <a href="javascript:" id="cart-confirm-empty" title="<?=$this->transEscAttr('bookbag_confirm_empty')?>" role="menuitem"><?=$this->transEsc('confirm_dialog_yes')?></a>
           </li>
-          <li role="none">
+          <li>
             <a id="cart-refuse-empty" role="menuitem"><?=$this->transEsc('confirm_dialog_no')?></a>
           </li>
         </ul>
diff --git a/themes/finc/templates/collection/view.phtml b/themes/finc/templates/collection/view.phtml
index f0f23b75101..e0837a046e7 100644
--- a/themes/finc/templates/collection/view.phtml
+++ b/themes/finc/templates/collection/view.phtml
@@ -1,4 +1,20 @@
 <!-- finc: collection - view -->
+<?php
+/**
+ * origin: vufind/BS3
+ * called by view helper/controller:
+ * usage:
+    - renders collection record view
+ 
+ * modified for finc:
+    - removes first sidebar call
+    - removes sidebar count
+    - swaps deprecated 'name=' for 'id='
+    - adds aria code for better accessibility
+    - adds <nav> wrapper for sidebar
+ * configured in: {}
+ */
+?>
 <?php
   // Set up standard record scripts:
   $this->headScript()->appendFile("record.js");
@@ -53,10 +69,10 @@
   </div>
 </div>
 
-<?php /* finc: pull the first toolbar for top area here; add id for accessibility */ ?>
-<div id="myresearch-sidebar" class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar">
+<?php /* finc: pull the first toolbar for top area here; add id for accessibility; use nav for sidebar #23430 */ ?>
+<nav class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar" role="search" aria-label="<?= $this->transEscAttr('sidebar_expand_collections') ?>">
   <?= $this->record($this->driver)->getToolbar() ?>
-</div>
+</nav>
 
 <?php /* finc: NO initiate break between top and bottom here #22956 */ ?>
 
diff --git a/themes/finc/templates/librarycards/home.phtml b/themes/finc/templates/librarycards/home.phtml
index 8d5cd5b3d03..8e91d9cd034 100644
--- a/themes/finc/templates/librarycards/home.phtml
+++ b/themes/finc/templates/librarycards/home.phtml
@@ -62,8 +62,8 @@
     </div>
   </div>
 
-  <?php /* finc adds id 'myresearch-sidebar' */ ?>
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc adds id 'myresearch-sidebar'; use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'librarycards'])?>
-</div>
+</section>
 <!-- finc: librarycards - home - END -->
diff --git a/themes/finc/templates/myresearch/acquisition.phtml b/themes/finc/templates/myresearch/acquisition.phtml
index 12941f10fab..86941eaa7c6 100644
--- a/themes/finc/templates/myresearch/acquisition.phtml
+++ b/themes/finc/templates/myresearch/acquisition.phtml
@@ -48,8 +48,9 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') .
     </div>
   </form>
 </div>
-<div class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
     <?= $this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'profile']) ?>
-</div>
+</section>
 
 <!-- finc: myresearch - acquisition - END -->
diff --git a/themes/finc/templates/myresearch/checkedout.phtml b/themes/finc/templates/myresearch/checkedout.phtml
index bddc6202efb..069ad818943 100644
--- a/themes/finc/templates/myresearch/checkedout.phtml
+++ b/themes/finc/templates/myresearch/checkedout.phtml
@@ -223,7 +223,8 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'checkedout'])?>
-</div>
+</section>
 <!-- finc: myresearch - checkedout - END -->
diff --git a/themes/finc/templates/myresearch/editlist.phtml b/themes/finc/templates/myresearch/editlist.phtml
index 50ec22fbb7f..d9b9bab6cb3 100644
--- a/themes/finc/templates/myresearch/editlist.phtml
+++ b/themes/finc/templates/myresearch/editlist.phtml
@@ -72,8 +72,9 @@
 <?php /* finc: show menu for new edit list in account, #19722 */ ?>
 <?php if ($this->auth()->isLoggedIn() && $this->layout()->getTemplate() !== 'layout/lightbox') :?>
   </div>
-  <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+  <?php /* finc: use section for sidebar #23430 */ ?>
+  <section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
       <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'editlist/NEW'])?>
-  </div>
+  </section>
 <?php endif; ?>
 <!-- finc - templates - myresearch - editlist - END -->
diff --git a/themes/finc/templates/myresearch/fines.phtml b/themes/finc/templates/myresearch/fines.phtml
index 09ba8a84b33..fea2e9cd97e 100644
--- a/themes/finc/templates/myresearch/fines.phtml
+++ b/themes/finc/templates/myresearch/fines.phtml
@@ -90,9 +90,10 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'fines'])?>
-</div>
+</section>
 
 <?=$this->render('myresearch/notify-account-status.phtml', ['method' => 'fines', 'accountStatus' => $this->accountStatus]); ?>
 <!-- finc: myresearch - fines - END -->
diff --git a/themes/finc/templates/myresearch/historicloans.phtml b/themes/finc/templates/myresearch/historicloans.phtml
index 259aa9e113d..429f75fb712 100644
--- a/themes/finc/templates/myresearch/historicloans.phtml
+++ b/themes/finc/templates/myresearch/historicloans.phtml
@@ -140,7 +140,8 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'historicloans'])?>
-</div>
+</section>
 <!-- finc: myresearch - historicloans - END -->
diff --git a/themes/finc/templates/myresearch/holds.phtml b/themes/finc/templates/myresearch/holds.phtml
index 8a1f37f42b6..0b1dacb5b54 100644
--- a/themes/finc/templates/myresearch/holds.phtml
+++ b/themes/finc/templates/myresearch/holds.phtml
@@ -198,9 +198,10 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'holds'])?>
-</div>
+</section>
 
 <?=$this->render('myresearch/notify-account-status.phtml', ['method' => 'holds', 'accountStatus' => $this->accountStatus]); ?>
 <!-- finc: myresearch - holds - END -->
diff --git a/themes/finc/templates/myresearch/illrequests.phtml b/themes/finc/templates/myresearch/illrequests.phtml
index 79a1e8e0f51..6b9d774e707 100644
--- a/themes/finc/templates/myresearch/illrequests.phtml
+++ b/themes/finc/templates/myresearch/illrequests.phtml
@@ -190,9 +190,10 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'ILLRequests'])?>
-</div>
+</section>
 
 <?=$this->render('myresearch/notify-account-status.phtml', ['method' => 'illRequests', 'accountStatus' => $this->accountStatus]); ?>
 <!-- finc: myresearch - illrequests - END -->
diff --git a/themes/finc/templates/myresearch/menu.phtml b/themes/finc/templates/myresearch/menu.phtml
index cfceac85da3..61c20089948 100644
--- a/themes/finc/templates/myresearch/menu.phtml
+++ b/themes/finc/templates/myresearch/menu.phtml
@@ -2,12 +2,19 @@
 <?php
 
 /**
- * origin: finc
+ * origin: VuFind/Bootstrap3
  *
  * called by view helper/controller: MyResearchController
  *
  * usage:
- ** renders side menu of profile/myreasearch menu
+   * renders side menu of profile/myresearch menu
+ 
+ * modified for finc:
+   * adds list styles to menus and wraps them in '<nav>' container
+   * adds '.lists' class to favorites badges for correct styling
+   * adds aria helpers
+   * adds 'media ready to pickup' menu item
+   * adds 'preferences' menu with items 'profile', 'change password', 'change pin' and 'logout'
  *
  * configured in: --
  */
@@ -34,9 +41,10 @@
 <?php /* finc needs to add .facet-group class and classes on sub items for borders - CK */
       /* also adds aria-current for correct menu action */ ?>
 <?php /* finc needs to add .facet-group class and classes on sub items for borders - CK */ ?>
-<?php /* finc: myreasearch menu as list #19734 */ ?>
+<?php /* finc: myresearch menu as list #19734 and wraps it in '<nav>' container, CK */ ?>
 <?php /* finc: specify current page menu entry in following elements #19941 */ ?>
-<ul class="myresearch-menu account-menu facet-group">
+<nav class="myresearch-menu">
+  <ul class="account-menu facet-group">
   <?php if ($ilsOnline && $this->ils()->checkCapability('getMyTransactions', $capabilityParams)): ?>
     <li class="facet">
       <a href="<?=$this->url('myresearch-checkedout')?>" class="flex checkedout<?=$this->active == 'checkedout' ? ' active' : ''?>"
@@ -135,18 +143,20 @@
       </a>
     </li>
   <?php endif; ?>
-</ul>
+  </ul>
+</nav>
 
-<?php /* finc: adds prefences sub menu with items "profile", "change password", "change pin" and "logout" */ ?>
+<?php /* finc: adds preferences sub menu with items "profile", "change password", "change pin" and "logout" */ ?>
 <?php if ($this->auth()->isLoggedIn()): ?>
   <h3><?=$this->transEsc('Preferences')?></h3>
-  <ul class="myresearch-menu account-menu facet-group">
-    <li class="facet">
-      <a href="<?=$this->url('myresearch-profile')?>"<?=$this->active == 'profile' ? ' class="active" aria-current="page"' : ''?>>
-        <i class="fa fa-fw fa-user" aria-hidden="true"></i>
+  <nav class="myresearch-menu">
+    <ul class="account-menu facet-group">
+      <li class="facet">
+        <a href="<?=$this->url('myresearch-profile')?>"<?=$this->active == 'profile' ? ' class="active" aria-current="page"' : ''?>>
+          <i class="fa fa-fw fa-user" aria-hidden="true"></i>
         <?=$this->transEsc('Profile')?>
-      </a>
-    </li>
+        </a>
+      </li>
     <?php if ($this->auth()->getManager()->supportsPasswordChange() && $routeExists('myresearch-changepassword')): ?>
       <li class="facet">
         <a href="<?=$this->url('myresearch-changepassword')?>" class="text<?=$this->active == 'newpassword' ? ' active' : ''?>">
@@ -163,21 +173,23 @@
         </a>
       </li>
     <?php endif; ?>
-    <li class="facet">
-      <a href="<?=$this->url('myresearch-logout')?>" class="text action">
-        <i class="fa fa-fw fa-sign-out" aria-hidden="true"></i>
-        <?=$this->transEsc("Log Out")?>
-      </a>
-    </li>
-  </ul>
+      <li class="facet">
+        <a href="<?=$this->url('myresearch-logout')?>" class="text action">
+          <i class="fa fa-fw fa-sign-out" aria-hidden="true"></i>
+          <?=$this->transEsc("Log Out")?>
+        </a>
+      </li>
+    </ul>
+  </nav>
 <?php endif; ?>
 
 <?php if ($user && $this->userlist()->getMode() !== 'disabled'): ?>
   <?php /* finc adds '.lists-heading' for styling purposes */ ?>
   <h3 class="list-heading"><?=$this->transEsc('Your Lists')?></h3>
   <?php /* finc: change menu into list */ ?>
-  <ul class="myresearch-menu facet-group">
-    <li class="facet">
+  <nav class="myresearch-menu">
+    <ul class="facet-group">
+      <li class="facet">
       <?php /* finc adds aria-current */ ?>
       <a href="<?=$this->url('myresearch-favorites')?>"<?=$this->active == 'favorites' ? ' class="active"' : ''?>
         <?=$this->active == 'favorites' ? ' aria-current="page"' : ''?>
@@ -192,17 +204,17 @@
           <?=$this->active == 'list' . $list['id'] ? ' aria-current="page"' : ''?>
         >
           <?=$this->escapeHtml($list['title'])?>
-          <span class="badge"><?=$list->cnt ?></span>
+          <?php /* adds '.lists' class to favorites badges for correct styling */ ?>
+          <span class="badge lists"><?=$list->cnt ?></span>
         </a>
       </li>
     <?php endforeach; ?>
-    <li class="facet">
-      <a href="<?=$this->url('editList', ['id' => 'NEW'])?>"
-        <?=$this->active == 'editlist/NEW' ? ' aria-current="page"' : ''?>
-      >
-        <i class="fa fa-fw fa-plus" aria-hidden="true"></i> <?=$this->transEsc('Create a List') ?>
-      </a>
-    </li>
-  </ul>
+      <li class="facet">
+        <a href="<?=$this->url('editList', ['id' => 'NEW'])?>" <?=$this->active == 'editlist/NEW' ? ' aria-current="page"' : ''?>>
+          <i class="fa fa-fw fa-plus" aria-hidden="true"></i> <?=$this->transEsc('Create a List') ?>
+        </a>
+      </li>
+    </ul>
+  </nav>
 <?php endif ?>
-<!-- finc: myresearch - menu - END -->
\ No newline at end of file
+<!-- finc: myresearch - menu - END -->
diff --git a/themes/finc/templates/myresearch/mylist.phtml b/themes/finc/templates/myresearch/mylist.phtml
index df58466c73c..a110bd9f175 100644
--- a/themes/finc/templates/myresearch/mylist.phtml
+++ b/themes/finc/templates/myresearch/mylist.phtml
@@ -95,7 +95,8 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?php /* nxt-line and related endif are finc-specific #12053, CK*/ ?>
   <?php if ($user): ?>
     <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => isset($list) ? 'list' . $list['id'] : 'favorites'])?>
@@ -104,5 +105,5 @@
     <?php /* finc adds br-element #16050 */ ?>
     <br/><?=$this->recommend($current)?>
   <?php endforeach; ?>
-</div>
+</section>
 <!-- finc: myresearch - mylist - END -->
diff --git a/themes/finc/templates/myresearch/newpassword.phtml b/themes/finc/templates/myresearch/newpassword.phtml
index b54a73883de..b8e67a07fdb 100644
--- a/themes/finc/templates/myresearch/newpassword.phtml
+++ b/themes/finc/templates/myresearch/newpassword.phtml
@@ -39,9 +39,9 @@
 
 <?php if ($this->auth()->isLoggedIn()): ?>
   </div>
-  <?php /* finc adds id to sidebar */ ?>
-  <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+  <?php /* finc adds id to sidebar; use section for sidebar #23430 */ ?>
+  <section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
     <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'newpassword'])?>
-  </div>
+  </section>
 <?php endif; ?>
 <!-- finc - templates - myresearch - newpassword - END -->
diff --git a/themes/finc/templates/myresearch/profile.phtml b/themes/finc/templates/myresearch/profile.phtml
index 1ed8eeb96ae..820c8547f45 100644
--- a/themes/finc/templates/myresearch/profile.phtml
+++ b/themes/finc/templates/myresearch/profile.phtml
@@ -60,7 +60,8 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'profile'])?>
-</div>
+</section>
 <!-- finc: myresearch - profile - END -->
diff --git a/themes/finc/templates/myresearch/setpin.phtml b/themes/finc/templates/myresearch/setpin.phtml
index af450660543..4411a0f0389 100644
--- a/themes/finc/templates/myresearch/setpin.phtml
+++ b/themes/finc/templates/myresearch/setpin.phtml
@@ -58,8 +58,9 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') .
 <?php if ($this->auth()->isLoggedIn()): ?>
   </div>
 
-  <div class="<?=$this->layoutClass('sidebar')?>">
+  <?php /* finc: use section for sidebar #23430 */ ?>
+  <section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
       <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'setpin'])?>
-  </div>
+  </section>
 <?php endif; ?>
 <!-- finc: myresearch - setpin - END -->
diff --git a/themes/finc/templates/myresearch/storageretrievalrequests.phtml b/themes/finc/templates/myresearch/storageretrievalrequests.phtml
index 79c3aab5251..84a14f52494 100644
--- a/themes/finc/templates/myresearch/storageretrievalrequests.phtml
+++ b/themes/finc/templates/myresearch/storageretrievalrequests.phtml
@@ -187,9 +187,10 @@
   <?php endif; ?>
 </div>
 
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
   <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'storageRetrievalRequests'])?>
-</div>
+</section>
 
 <?=$this->render('myresearch/notify-account-status.phtml', ['method' => 'storageRetrievalRequests', 'accountStatus' => $this->accountStatus]); ?>
 <!-- finc: myresearch - storageretrievalrequests - END -->
diff --git a/themes/finc/templates/record/view.phtml b/themes/finc/templates/record/view.phtml
index 12b6688d819..a1c0928add8 100644
--- a/themes/finc/templates/record/view.phtml
+++ b/themes/finc/templates/record/view.phtml
@@ -1,4 +1,21 @@
 <!-- finc: record - view -->
+<?php
+/**
+* origin: vufind/BS3
+* called by view helper/controller:
+* usage:
+  - renders record view
+
+ * modified for finc:
+  - removes first sidebar call
+  - removes sidebar count
+  - swaps deprecated 'name=' for 'id='
+  - adds custom tab handling for better accessibility
+  - adds aria code for better accessibility
+  - adds <section> wrapper for sidebar
+* configured in: {}
+*/
+?>
 <?php
   // Set up standard record scripts:
   $this->headScript()->appendFile("record.js");
@@ -103,14 +120,18 @@
     <?=$this->driver->supportsCoinsOpenURL()?'<span class="Z3988" title="' . $this->escapeHtmlAttr($this->driver->getCoinsOpenURL()) . '"></span>':''?>
   </div>
 
-  <div class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar">
+  <?php /* finc: use 'section' for sidebar #23430;
+           'getToolbar', below, pulls in the aria-labelled <nav> toolbar, therefore no aria-label here, CK;
+           'similar items' is wrapped in <aside> with a h2 heading, CK */
+  ?>
+  <section class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar">
       <?php /* finc adds toolbar to sidebar - CK */ ?>
       <?= $this->record($this->driver)->getToolbar() ?>
       
-      <?php foreach ($sidebarList as $current): ?>
+        <?php foreach ($sidebarList as $current): ?>
           <?= $this->related()->render($current) ?>
-      <?php endforeach; ?>
-  </div>
+        <?php endforeach; ?>
+  </section>
 </div>
 
 <?= $this->inlineScript(\Laminas\View\Helper\HeadScript::SCRIPT, '$(document).ready(recordDocReady);', 'SET'); ?>
diff --git a/themes/finc/templates/search/advanced/layout.phtml b/themes/finc/templates/search/advanced/layout.phtml
index 026b069389f..d3c451aa5cf 100644
--- a/themes/finc/templates/search/advanced/layout.phtml
+++ b/themes/finc/templates/search/advanced/layout.phtml
@@ -189,8 +189,8 @@
       <?php endif; ?>
     </div>
 
-    <?php /* finc: add id myresearch-sidebar #17908 */ ?>
-    <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+    <?php /* finc: add id myresearch-sidebar #17908; use aside for sidebar #23430 */ ?>
+    <aside class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
       <?php /* finc: add button #17601 */ ?>
       <button class="close-offcanvas btn btn-primary" data-toggle="offcanvas"><?=$this->transEsc('navigate_back') ?></button>
       <?php if ($hasDefaultsApplied): ?>
@@ -218,7 +218,7 @@
         <a class="facet help-link" data-lightbox href="<?=$this->url('help-home')?>?topic=advsearch&amp;_=<?=time() ?>"><?=$this->transEsc("Help with Advanced Search")?></a>
         <a class="facet help-link" data-lightbox href="<?=$this->url('help-home')?>?topic=search&amp;_=<?=time() ?>"><?=$this->transEsc("Help with Search Operators")?></a>
       </div>
-    </div>
+    </aside>
   </form>
 </div>
 <?php
diff --git a/themes/finc/templates/search/bulk-action-buttons.phtml b/themes/finc/templates/search/bulk-action-buttons.phtml
index cd240140334..1d2dbbf49e7 100644
--- a/themes/finc/templates/search/bulk-action-buttons.phtml
+++ b/themes/finc/templates/search/bulk-action-buttons.phtml
@@ -1,6 +1,6 @@
 <!-- finc: search - bulk-action-buttons -->
 <?php if (isset($this->showCheckboxes) && $this->showCheckboxes): ?>
-<nav class="bulkActionButtons hidden-print">
+<nav class="bulkActionButtons hidden-print" aria-label="<?=$this->transEscAttr('bulk_action_navigation')?>">
     <div class="bulk-checkbox">
       <input type="checkbox" class="checkbox-select-all" name="selectAll" id="<?=$this->idPrefix?>addFormCheckboxSelectAll"<?php if ($this->formAttr): ?> form="<?=$this->escapeHtmlAttr($this->formAttr) ?>"<?php endif; ?>/>
       <label for="<?=$this->idPrefix?>addFormCheckboxSelectAll">
diff --git a/themes/finc/templates/search/history.phtml b/themes/finc/templates/search/history.phtml
index 600c8001e88..72a6ef69094 100644
--- a/themes/finc/templates/search/history.phtml
+++ b/themes/finc/templates/search/history.phtml
@@ -64,14 +64,15 @@ $isLoggedIn = $this->auth()->isLoggedIn();
 
 <?php /* finc: show offcanvas-toggler and profile-menu only if $isLoggedIn */ ?>
 <?php if ($isLoggedIn): ?>
-  <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+  <?php /* finc: use section for sidebar #23430 */ ?>
+  <section class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar" aria-label="<?=$this->transEsc('MyAccountSidebar') ?>">
     <?=$this->context($this)->renderInContext(
         "myresearch/menu.phtml",
         // apply active highlighting in profile-menu
         ['active' => 'history']
      );
      ?>
-  </div>
+  </section>
 <?php endif; ?>
 
 <?php
diff --git a/themes/finc/templates/search/reservessearch.phtml b/themes/finc/templates/search/reservessearch.phtml
index e2e8e5fb84a..6a34c41901d 100644
--- a/themes/finc/templates/search/reservessearch.phtml
+++ b/themes/finc/templates/search/reservessearch.phtml
@@ -81,10 +81,11 @@
 </div>
 
 <?php /* Narrow Search Options */ ?>
-<div class="<?=$this->layoutClass('sidebar')?>">
+<?php /* finc: use section for sidebar #23430 */ ?>
+<section class="<?=$this->layoutClass('sidebar')?>">
   <?php foreach ($this->results->getRecommendations('side') as $current): ?>
     <?=$this->recommend($current)?>
   <?php endforeach; ?>
-</div>
+</section>
 <?php /* End Narrow Search Options */ ?>
 <!-- finc - templates - search - reservessearch - END -->
diff --git a/themes/finc/templates/search/results.phtml b/themes/finc/templates/search/results.phtml
index de6de2dad09..6f80100635a 100644
--- a/themes/finc/templates/search/results.phtml
+++ b/themes/finc/templates/search/results.phtml
@@ -166,10 +166,11 @@
 <?php /* End Main Listing */ ?>
 
 <?php /* Narrow Search Options */ ?>
-<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
+<?php /* finc: use nav for sidebar #23430 */ ?>
+<nav class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar">
   <?php foreach ($this->results->getRecommendations('side') as $index => $current): ?>
     <?=$this->recommend($current, 'side', $index)?>
   <?php endforeach; ?>
-</div>
+</nav>
 <?php /* End Narrow Search Options */ ?>
 <!-- finc: search - results - END -->
-- 
GitLab