Skip to content
Snippets Groups Projects
Commit 827c0c83 authored by Alexander Purr's avatar Alexander Purr Committed by Dorian Merz
Browse files

refs #19274 [fid_bbi] accessibility fixes

* use html lists for record listings
* add aria-described by for checkboxes
** set label context
parent 2872463b
No related merge requests found
//// Result List ol, ul that contains li.result or facet group that contains li.facet
// comes from finc
.record-list {
list-style: none;
margin: 0;
padding: 0;
li::before {
content: none;
}
}
\ No newline at end of file
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
@import 'blocks/posts'; @import 'blocks/posts';
@import 'blocks/post'; @import 'blocks/post';
@import 'blocks/record'; @import 'blocks/record';
@import 'blocks/record-list';
@import 'blocks/result'; @import 'blocks/result';
@import 'blocks/results'; @import 'blocks/results';
@import 'blocks/rvk'; @import 'blocks/rvk';
......
...@@ -33,7 +33,7 @@ $formatIconMappings = json_decode(file_get_contents($formatIconMappingsFile), tr ...@@ -33,7 +33,7 @@ $formatIconMappings = json_decode(file_get_contents($formatIconMappingsFile), tr
$icon = $formatIconMappings[$format] ?? 'unknown'; $icon = $formatIconMappings[$format] ?? 'unknown';
?> ?>
<div class="result<?php if ($this->driver->supportsAjaxStatus()): ?> ajaxItem<?php endif ?>"> <li class="result<?php if ($this->driver->supportsAjaxStatus()): ?> ajaxItem<?php endif ?>">
<input type="hidden" value="<?=$this->escapeHtmlAttr($id)?>" class="hiddenId"/> <input type="hidden" value="<?=$this->escapeHtmlAttr($id)?>" class="hiddenId"/>
<input type="hidden" value="<?=$this->escapeHtmlAttr($source)?>" class="hiddenSource"/> <input type="hidden" value="<?=$this->escapeHtmlAttr($source)?>" class="hiddenSource"/>
...@@ -44,16 +44,18 @@ $icon = $formatIconMappings[$format] ?? 'unknown'; ...@@ -44,16 +44,18 @@ $icon = $formatIconMappings[$format] ?? 'unknown';
<div class="result_details"> <div class="result_details">
<h3 class="result_title resultItemLine1"> <h3 class="result_title resultItemLine1">
<?php $missing = $this->driver instanceof \VuFind\RecordDriver\Missing; ?> <?php $missing = $this->driver instanceof \VuFind\RecordDriver\Missing; ?>
<?php $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); ?>
<?php if (!$missing): ?> <?php if (!$missing): ?>
<a <a
href="<?=$this->recordLink()->getUrl($this->driver)?>" href="<?=$this->recordLink()->getUrl($this->driver)?>"
class="getFull" class="getFull"
data-view="<?=$this->params->getOptions()->getListViewOption()?>" data-view="<?=$this->params->getOptions()->getListViewOption()?>"
id="<?=$describedById?>"
> >
<?=$this->record($this->driver)->getTitleHtml()?> <?=$this->record($this->driver)->getTitleHtml()?>
</a> </a>
<?php else: ?> <?php else: ?>
<?=$this->record($this->driver)->getTitleHtml()?> <span id="<?=$describedById?>"><?=$this->record($this->driver)->getTitleHtml()?></span>
<?php endif; ?> <?php endif; ?>
</h3> </h3>
...@@ -301,5 +303,5 @@ $icon = $formatIconMappings[$format] ?? 'unknown'; ...@@ -301,5 +303,5 @@ $icon = $formatIconMappings[$format] ?? 'unknown';
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </li>
<!-- fid_bbi: RecordDriver - DefaultRecord - list-entry - END --> <!-- fid_bbi: RecordDriver - DefaultRecord - list-entry - END -->
...@@ -101,10 +101,11 @@ $user = $this->auth()->isLoggedIn(); ...@@ -101,10 +101,11 @@ $user = $this->auth()->isLoggedIn();
data-lightbox-onsubmit="bulkFormHandler" data-lightbox-onsubmit="bulkFormHandler"
> >
<?=$this->context($this)->renderInContext('myresearch/bulk-action-buttons.phtml', ['idPrefix' => '', 'list' => $list ?? null, 'account' => $this->account])?> <?=$this->context($this)->renderInContext('myresearch/bulk-action-buttons.phtml', ['idPrefix' => '', 'list' => $list ?? null, 'account' => $this->account])?>
<ul class="record-list">
<?php foreach ($this->results->getResults() as $i => $current): ?> <?php foreach ($this->results->getResults() as $i => $current): ?>
<?=$this->record($current)->getListEntry($list, $user)?> <?=$this->record($current)->getListEntry($list, $user)?>
<?php endforeach; ?> <?php endforeach; ?>
</ul>
</form> </form>
<?=$this->paginationControl($this->results->getPaginator(), 'Sliding', 'search/pagination.phtml', ['results' => $this->results])?> <?=$this->paginationControl($this->results->getPaginator(), 'Sliding', 'search/pagination.phtml', ['results' => $this->results])?>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* @author Tobias Schäfer <ts@aspectis.net> * @author Tobias Schäfer <ts@aspectis.net>
*/ */
?> ?>
<?php $label = isset($this->context) ? 'select_item_' . $this->context : 'select_item'; ?>
<?php $id = 'checkbox-' . uniqid(); ?> <?php $id = 'checkbox-' . uniqid(); ?>
<?php // NOTE: `class` is required by favorites list JS ?> <?php // NOTE: `class` is required by favorites list JS ?>
<input <input
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
value="<?=$this->id?>" value="<?=$this->id?>"
<?=isset($this->formAttr) ? "form='$this->formAttr'" : ""?> <?=isset($this->formAttr) ? "form='$this->formAttr'" : ""?>
aria-describedby="<?=$this->id?>" aria-describedby="<?=$this->id?>"
aria-label="<?=$this->transEsc('select_item')?>" aria-label="<?=$this->transEsc($label)?>"
> >
<label for="<?=$id?>"> <label for="<?=$id?>">
<?php if (strlen($this->number ?? '') > 0): ?> <?php if (strlen($this->number ?? '') > 0): ?>
......
...@@ -6,11 +6,12 @@ if (!isset($this->indexStart)) { ...@@ -6,11 +6,12 @@ if (!isset($this->indexStart)) {
$i = $this->indexStart; $i = $this->indexStart;
?> ?>
<?php $listStart = $this->results->getStartRecord() + $i - $this->indexStart; ?>
<ol class="record-list" start="<?=$listStart?>">
<?php foreach ($this->results->getResults() as $current): ?> <?php foreach ($this->results->getResults() as $current): ?>
<?php $i++; ?> <?php $i++; ?>
<div id="result<?=$i?>" class="result <?=$current->supportsAjaxStatus() ? 'ajaxItem': ''?>"> <li id="result<?=$i?>" class="result <?=$current->supportsAjaxStatus() ? 'ajaxItem': ''?>">
<?php // TODO: Remove? ?> <?php // TODO: Remove? ?>
<?php $recordNumber = $this->results->getStartRecord() + $i - $this->indexStart; ?> <?php $recordNumber = $this->results->getStartRecord() + $i - $this->indexStart; ?>
<span id="jump<?=$recordNumber?>"></span> <span id="jump<?=$recordNumber?>"></span>
...@@ -20,8 +21,9 @@ $i = $this->indexStart; ...@@ -20,8 +21,9 @@ $i = $this->indexStart;
<?php endif; ?> <?php endif; ?>
<?=$this->record($current)->getSearchResult('list')?> <?=$this->record($current)->getSearchResult('list')?>
</div> </li>
<?php $i++; ?> <?php $i++; ?>
<?php endforeach; ?> <?php endforeach; ?>
</ol>
<!-- fid_bbi: search - list-list - END --> <!-- fid_bbi: search - list-list - END -->
<!-- fid_bbi: search - results --> <!-- fid_bbi: search - results -->
<?php <?php
$this->context = 'search_result';
$lookfor = $this->results->getUrlQuery()->isQuerySuppressed() ? '' : $this->params->getDisplayQuery(); $lookfor = $this->results->getUrlQuery()->isQuerySuppressed() ? '' : $this->params->getDisplayQuery();
$recordTotal = $this->results->getResultTotal(); $recordTotal = $this->results->getResultTotal();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment