diff --git a/resources/js/keyboardNavigation.js b/resources/js/keyboardNavigation.js index 09bb2750f5695d3aa12773945be315bba4582e19..e4366bf4432ebc0a9f3ada6ee309d2faabd2e45c 100644 --- a/resources/js/keyboardNavigation.js +++ b/resources/js/keyboardNavigation.js @@ -1,4 +1,10 @@ -var ctrlInfo = false; +var ctrlInfo = false; // Flag used for checking if the user was shown the keyboard control information + +$(document).ready(function () { + $('[data-index="1"').attr("id", "results-entry"); + $('#foki a').first().attr("id", "settings-entry"); + $('div.search-input input').focus(); +}); $('label').on('keydown', function(e) { if(e.keyCode == '13') { @@ -19,122 +25,23 @@ $(document).on('keydown', function(e) { function escKeyPressed() { focusInfoBox(); + $('input[type="checkbox"]').removeAttr('checked'); } function focusInfoBox() { - $("#keyboard-nav-info").show(); - $("#keyboard-nav-info a").first().focus(); + $('#keyboard-nav-info').show(); + $('#keyboard-nav-info a').first().focus(); } -function jumpToResults() { - +function focusResults() { + $('#results-entry .result-title a').focus(); } -function jumpToSettings() { - -} - -function jumpToNavigation() { - -} -/* -var ctrlInfo = false; // Flag used for checking if the user was shown the keyboard control information -var currentResultIndex = 1; // stores index of result which was focused last -var currentFocusedElement = { // Object used for storing currently focused element and element type (e.g. anchor tag or result div) - element: $("div.search-input input"), - type: "input", - mode: "results" -}; - - -$(document).ready(function () { - $('[data-index="1"').attr("id", "results-entry"); - focusElement($("div.search-input input"), "input"); -}); - - - - -// Focuses passed element and sets currentFocusedElement object - - -function tabKeyPressed() { - if(!ctrlInfo) { - ctrlInfo = true; - showInfoBox(); - } else { - focusNextElement(); - } -} - -function enterKeyPressed() { - if(currentFocusedElement.type === "infobox") { - focusElement($(currentFocusedElement.element.attr('href')), "result"); - console.log(currentFocusedElement.element.html()); - /* switch(currentFocusedElement.element.attr('id')) { - case 'results-nav': - console.log(currentFocusedElement.element.attr('id')); - break; - case 'settings-nav': - console.log(currentFocusedElement.element.attr('id')); - break; - case 'site-nav': - console.log(currentFocusedElement.element.attr('id')); - break; - default: - console.log(currentFocusedElement.element.attr('id')); - } - } else if(currentFocusedElement.type === "result") { - focusElement($(":focus").find("a").first(), "link") - } else if(currentFocusedElement.type === "link" || "infobox") { - window.location = currentFocusedElement.element.attr('href'); - } else if(currentFocusedElement.type === "input") { - $("#searchForm").submit(); - } -} - - - - - -function focusNextElement() { - if(currentFocusedElement.type === "infobox") { - rotateInfoBoxLinks(); - } else if(currentFocusedElement.type === "result") { - focusNextResult(); - } else if (currentFocusedElement.type === "link") { - focusNextLink(); - } else { - focusElement($("div.result").not('.ad').first(), "result"); - } -} - -function focusNextResult() { - if(currentFocusedElement.element.next().length > 0) { - focusElement(currentFocusedElement.element.next(), "result"); - } else { - focusElement($("div.search-input input"), "input"); - } -} - -function focusNextLink() { - console.log(currentFocusedElement.element.closest('a')); -} - -function rotateInfoBoxLinks() { - switch(currentFocusedElement.element.attr('id')) { - case 'results-nav': - focusElement($('#settings-nav'), 'infobox'); - break; - case 'settings-nav': - focusElement($('#site-nav'), 'infobox'); - break; - case 'site-nav': - focusElement($('#results-nav'), 'infobox'); - break; - default: - focusElement($('#results-nav'), 'infobox'); - } +function focusSettings() { + $('#foki a').first().focus(); } -*/ \ No newline at end of file +function focusNavigation() { + $('#sidebarToggle').prop('checked', true); + $('.sidebar-list a').first().focus(); +} \ No newline at end of file diff --git a/resources/less/metager/parts/sidebar.less b/resources/less/metager/parts/sidebar.less index 95358b02924f4885c9df8188f60ef711b77f954f..85b980e02abbecdd0437140331869c0a3083d608 100644 --- a/resources/less/metager/parts/sidebar.less +++ b/resources/less/metager/parts/sidebar.less @@ -47,7 +47,7 @@ line-height: 20px; display: inline-block; width: 100%; - &:hover { + &:hover, &:focus { color: red; } } @@ -89,7 +89,7 @@ display: inline-block; width: 100%; color: black; - &:hover { + &:hover, &:focus { color: red; } } diff --git a/resources/views/layouts/ad.blade.php b/resources/views/layouts/ad.blade.php index c7cd6e4d64f65824dc1b6ce8a1ed061d83ff43eb..dc010c73d12cde5d72ddcc16741f62502a050eef 100644 --- a/resources/views/layouts/ad.blade.php +++ b/resources/views/layouts/ad.blade.php @@ -1,5 +1,5 @@ @if(isset($ad) && !$apiAuthorized) -