'no_activity' => 'No activity to show',
'no_items' => 'No items available',
'back_to_top' => 'Back to top',
+ 'skip_to_main_content' => 'Skip to main content',
'toggle_details' => 'Toggle Details',
'toggle_thumbnails' => 'Toggle Thumbnails',
'details' => 'Details',
}
}
+.skip-to-content-link {
+ position: fixed;
+ top: -$-xxl;
+ left: 0;
+ background-color: #FFF;
+ z-index: 15;
+ border-radius: 0 4px 4px 0;
+ display: block;
+ box-shadow: $bs-dark;
+ font-weight: bold;
+ &:focus {
+ top: $-xl;
+ outline-offset: -10px;
+ outline: 2px dotted var(--color-primary);
+ }
+}
+
.contained-search-box {
display: flex;
height: 38px;
</head>
<body class="@yield('body-class')">
+ @include('common.parts.skip-to-content')
@include('partials.notifications')
@include('common.header')
--- /dev/null
+<a class="px-m py-s skip-to-content-link" href="#main-content">{{ trans('common.skip_to_main_content') }}</a>
\ No newline at end of file
<div class="container small py-xl">
<main class="card content-wrap auto-height">
- <div class="body">
+ <div id="main-content" class="body">
<h3>{{ trans('errors.error_occurred') }}</h3>
<h5 class="mb-m">{{ $message ?? 'An unknown error occurred' }}</h5>
<p><a href="{{ url('/') }}" class="button outline">{{ trans('errors.return_home') }}</a></p>
@section('content')
- <div class="flex-fill flex fill-height">
+ <div id="main-content" class="flex-fill flex fill-height">
<form action="{{ $page->getUrl() }}" autocomplete="off" data-page-id="{{ $page->id }}" method="POST" class="flex flex-fill">
{{ csrf_field() }}
<div class="flex-fill flex">
<div class="content flex">
- <div class="scroll-body">
+ <div id="main-content" class="scroll-body">
@yield('body')
</div>
</div>
</div>
<div class="@yield('body-wrap-classes') tri-layout-middle">
- <div class="tri-layout-middle-contents">
+ <div id="main-content" class="tri-layout-middle-contents">
@yield('body')
</div>
</div>