EPUB Accessibility Report
Generated by DAISY Ace (1.3.2) on 6/25/2025, 10:46:13 PM
Title: Der Allround-Service
Violations
Go to: Summary of violations | All violations
Summary of violations
Critical | Serious | Moderate | Minor | Total | |
---|---|---|---|---|---|
WCAG 2.0 A | 0 | 0 | 0 | 0 | 0 |
WCAG 2.0 AA | 0 | 0 | 0 | 0 | 0 |
EPUB | 0 | 0 | 0 | 0 | 0 |
Best Practice | 0 | 0 | 0 | 0 | 0 |
Other | 0 | 0 | 0 | 0 | 0 |
Total | 0 | 0 | 0 | 0 | 0 |
All violations
Impact | Ruleset | Rule | Location | Details |
---|
Go to: Top of section | Page navigation
Metadata
Go to: All Metadata | Accessibility Metadata
All Metadata
Name | Value |
---|---|
dc:language | de |
dc:creator | Hanns Kneifel |
dc:title | Der Allround-Service |
dc:publisher | Verlag Peter Hopf |
dc:identifier | urn:uuid:95e07c42-efb0-4e62-a90f-61ae6910fd90 | 9783863051495 |
dc:description | Zwei elegante Problemlöser im 58. Jahrhundert. Ein Büro auf den Bahamas. Und jede Menge Aufträge, die niemand sonst übernehmen will. |
dc:subject | Science Fiction | Retro Science Fiction | Science Fiction Klassiker | Science Fiction Abenteuer |
dc:date | 2025-06-25T22:11:06Z |
dc:rights | Copyright © 2025 Verlag Peter Hopf |
schema:accessibilityFeature | tableOfContents | structuralNavigation | pageNavigation | readingOrder |
schema:accessibilityHazard | none |
schema:accessibilitySummary | Dieses E-Book enthält strukturiertes HTML, ein Inhaltsverzeichnis, einen logischen Lesefluss und keine bekannten Barrieren. |
schema:accessMode | textual |
schema:accessModeSufficient | textual |
schema:accessibilityControl | fullKeyboardControl | fullMouseControl | fullTouchControl |
a11y:certifiedBy | Verlag Peter Hopf |
cover | cover-edition-kneifel-allround-service.jpg |
Sigil version | 2.5.1 |
dcterms:modified | 2025-06-25T22:44:54Z |
dcterms:conformsTo | http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa |
Accessibility Metadata
The following accessibility metadata is present:
The following accessibility metadata is missing:
.
Go to: Top of section | Page navigation
Outlines
Go to: TOC Outline | Headings Outline | HTML Outline
TOC Outline
- Der Allround-Service
- Impressum
- Vorwort
- Die Romane
- Shindana – Welt aus Eisen
- 1.
- 2.
- 3.
- 4.
- 5.
- Gast aus der Unendlichkeit
- 1.
- 2.
- 3.
- 4.
- 5.
- Der Clan der blauen Schlangen
- 1.
- 2.
- 3.
- 4.
- Invasion der Echsen
- 1.
- 2.
- 3.
- 4.
- Ritter des Gesetzes
- 1.
- 2.
- 3.
- 4.
- Die Welt der weißen Stürme
- 1.
- 2.
- 3.
- 4.
Headings Outline
-
- Missing heading: h2
- Missing heading: h3
- HANNS KNEIFEL
- Der Allround-Service
- Impressum
- Vorwort
- Die Romane
- Shindana – Welt aus Eisen
- 1.
- 2.
- 3.
- 4.
- 5.
- Gast aus der Unendlichkeit
- 1.
- 2.
- 3.
- 4.
- 5.
- Der Clan der blauen Schlangen
- 1.
- 2.
- 3.
- 4.
- Invasion der Echsen
- 1.
- 2.
- 3.
- 4.
- Ritter des Gesetzes
- 1.
- 2.
- 3.
- 4.
- Die Welt der weißen Stürme
- 1.
- 2.
- 3.
- 4.
- Missing heading: h3
- Missing heading: h2
- Inhaltsverzeichnis
- Orientierungsmarken
HTML Outline
-
- Untitled BODY
-
- HANNS KNEIFEL
- Der Allround-Service
-
- Impressum
-
- Vorwort
-
- Die Romane
-
- Untitled BODY
-
- Shindana – Welt aus Eisen
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- 5.
-
- Gast aus der Unendlichkeit
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- 5.
-
- Der Clan der blauen Schlangen
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- Invasion der Echsen
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- Ritter des Gesetzes
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- Die Welt der weißen Stürme
-
- 1.
-
- 2.
-
- 3.
-
- 4.
-
- Untitled BODY
- Inhaltsverzeichnis
- Untitled BODY
Go to: Top of section | Page navigation
Images
Image | alt |
aria-describedby |
figcaption |
Location | Role |
---|---|---|---|---|---|
![]() |
Coverbild | N/A | N/A | Text/cover.xhtml#epubcfi(/4/2/2) | N/A |
Go to: Top of section | Page navigation
// https://datatables.net/reference/option/language // https://datatables.net/examples/basic_init/language.html // https://datatables.net/manual/i18n const dataTableInit = { "language": { "decimal": "", "emptyTable": 'No data available in table', "info": 'Showing: _START_ - _END_ / _TOTAL_', "infoEmpty": 'Showing: 0 - 0 / 0', "infoFiltered": '(filtered from _MAX_ total entries)', "infoPostFix": "", "thousands": ",", "lengthMenu": 'Display _MENU_ records per page', "loadingRecords": 'Loading...', "processing": 'Processing...', "search": 'Search:', "zeroRecords": 'No matching records found', "paginate": { "first": 'First', "last": 'Last', "next": 'Next', "previous": 'Previous' }, "aria": { "sortAscending": ': activate to sort column ascending', "sortDescending": ': activate to sort column descending' } } };
// keep a flat list of the violations in memory for table filtering var violations = [];
// update the contents of the table to reflec the filtering function updateTableContents(violationSubset) { // anything else is 'other' var rulesetTagLabels = { 'wcag2a': 'WCAG 2.0 A', 'wcag2aa': 'WCAG 2.0 AA', 'EPUB': 'EPUB', 'best-practice': 'Best Practice', 'other': 'Other' };
$('#violations-table').dataTable().fnDestroy(); $("#message").remove(); if (violationSubset.length == 0) { $('
No matching violations found.
').insertBefore("#violations .pagenav"); $("#violations-table").hide(); return; }
$("#violations-table").show(); $("#filters").show();
var tablebody = $("#violations-table > tbody"); tablebody.empty();
violationSubset.forEach(function(violation) {
var tr = $("
"); var tdImpact = $("
"); var tdRuleset = $("
"); var tdLocation = $("
\"" + violation["fileTitle"] + "\"
" + violation["location"] + "
"); if (violation.html) { var tdSnippet = $('
'+ violation.html.trim() + "
"); tdLocation.append(tdSnippet); } var tdRule = $("
" + violation["rule"] + "
" + violation["engine"] + "
");
var desc = violation["desc"];
var detailsArr = desc.split("\n"); var tdDetails = $("
");
var ul = $("
"); tdDetails.append(ul); detailsArr.forEach(function(item) { if (item != "") { var elm = $("
"); elm.text(decodeEntities(item)); ul.append(elm); } }); var link = $("
Learn more about: ' + violation["kbtitle"] + "
"); tdDetails.append(link);
tr.append(tdImpact); tr.append(tdRuleset); tr.append(tdRule); tr.append(tdLocation); tr.append(tdDetails); tablebody.append(tr); });
$('#violations-table').DataTable(dataTableInit); }
function filterSelected() { var filters = []; $("#filters select").each(function(idx, elm) { $(elm).children("option").each(function (idx, optElm) { if (optElm.selected) { filters[elm.name] = optElm.value; } }); }); var filteredData = filterViolations(filters); updateTableContents(filteredData, true); }
// expects: // {"rule": "all", "impact": "serious", "file": "p1.xhtml"} function filterViolations(filters) { var filteredList = []; violations.forEach(function(item) { if ( (filters["rule"] == "all" || item["rule"] === filters["rule"]) && (filters["impact"] == "all" || item["impact"] === filters["impact"]) && (filters["file"] == "all" || item["file"] === filters["file"]) && (filters["ruleset"] == "all" || item["applicableRulesetTag"] === filters["ruleset"]) ) { filteredList.push(item); } }); return filteredList; }
function resetFilters() { $("#filters select").each(function(idx, elm) { $(elm).children("option").each(function (idx, optElm) { optElm.selected = optElm.value == "all"; }); }); filterSelected(); }
function decodeEntities(text) { // The entities tend to appear in violation descriptions, and there are just a few named ones involved var namedEntities = { "<": "<", ">": ">", """: "\"", " ": " " }; // process entities var str = text.replace(/(\d+);/g, function(match, dec) { return String.fromCharCode(dec); });
//process named entities Object.keys(namedEntities).forEach(k => { str = str.replace(new RegExp(k, 'g'), namedEntities[k]); }); return str; }
// certain classes need to be added to elements if we're using javascript in the browser function prepareForJS() { $('#filters').removeClass('d-none'); $('#navlist').addClass('nav-tabs nav'); $('#violations').addClass('tab-pane active'); $('#metadata').addClass('tab-pane'); $('#outlines').addClass('tab-pane'); $('#images').addClass('tab-pane'); } $(document).ready(function() { prepareForJS(); $('#metadata-table').DataTable(dataTableInit); //updateTableContents(violations, false); $('#violations-table').DataTable(dataTableInit); $('#filters > select').change(filterSelected); });