govuk_tech_docs 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of govuk_tech_docs might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50a30563bccb5eebe08dd7ca913942ec7d95f085566905070e32e204fadfa5e2
4
- data.tar.gz: 81a9b36062450e9d6249d9dfd396ed14e751a8593a4fbe42f76a93808ead4598
3
+ metadata.gz: 4adec245cbbc73fe2a14f73eb4a0eb2f9acf4d8d751f0786271c59f479c8b244
4
+ data.tar.gz: 9017c133a8dace561bf56b4e2ec852b4dcdc15a341501b8784659f229f2f183a
5
5
  SHA512:
6
- metadata.gz: 315652fdfc9bbb68bf0730a81c424981d0de9e1bcfd4a751f9d728595c112cbe447134f07f25102da905b29719af9693412bd9292fc68b6005161b8dbdc09d2e
7
- data.tar.gz: 2e5db9c081d29b802c3acd097a0ab3c5920e7e3f38e1dac09679b78676532532b330743d5a806743491c38b4aef1b9796137fb701e4e7cf592a86a0fa09c003d
6
+ metadata.gz: 3da0c05902288480bf1953b7d5ad275742707cb8324cebe68a1f970cb9dda1b2c70a6538aa9af7a6272973e4b08b3a10108ad6591cbb78bae5aa4e46d436357d
7
+ data.tar.gz: 1ca0540c1625e80f25d89426f893d15368da0c13b84e5824c4808abd62bfed7bf1e4b93738c2ecd76fe43d70fd23b5517494078ab94367f062f4a73f8c0cec8f
@@ -0,0 +1 @@
1
+ ⚠️ Don't forget to update the gem version in the [CHANGELOG](https://github.com/alphagov/tech-docs-gem/blob/master/CHANGELOG.md) before merging! When you're ready to release bump [version file](https://github.com/alphagov/tech-docs-gem/blob/master/lib/govuk_tech_docs/version.rb) and generate a tag. ⚠️
data/.travis.yml CHANGED
@@ -1,4 +1,7 @@
1
1
  language: ruby
2
+ cache:
3
+ bundler: true
4
+ npm: true
2
5
  before_install:
3
6
  - gem update --system
4
7
  - gem install bundler
data/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 2.2.0
4
4
 
5
- ### Ruby version bump
5
+ ### Accessibility Fixes
6
6
 
7
- We've updated the Ruby version supported:
7
+ - [#205: Improve table of contents accessibility](https://github.com/alphagov/tech-docs-gem/pull/205)
8
+ - [#209: Some search and keyboard navigation updates](https://github.com/alphagov/tech-docs-gem/pull/209)
9
+ - [#210: Stop linking images to new tabs](https://github.com/alphagov/tech-docs-gem/pull/210)
10
+ - [#214: Implement row level table headings to allow accessible tables with row headings](https://github.com/alphagov/tech-docs-gem/pull/214)
11
+ - [#215: Add tabindex and focus states to code blocks](https://github.com/alphagov/tech-docs-gem/pull/215)
8
12
 
9
- - [#201: Bump ruby to 2.7.2](https://github.com/alphagov/tech-docs-gem/pull/201)
13
+ ### Docs
14
+
15
+ - [#206: Remove tdt docs content from readme file](https://github.com/alphagov/tech-docs-gem/pull/206)
16
+
17
+ ## 2.1.1
10
18
 
11
19
  ### Fixes
12
20
 
@@ -14,6 +22,12 @@ We’ve made fixes in the following pull requests:
14
22
 
15
23
  - [#199: Fix page expiry box link colours (hover and focus) ](https://github.com/alphagov/tech-docs-gem/pull/199)
16
24
 
25
+ ### Ruby version bump
26
+
27
+ We've updated the Ruby version supported:
28
+
29
+ - [#201: Bump ruby to 2.7.2](https://github.com/alphagov/tech-docs-gem/pull/201)
30
+
17
31
  ## 2.1.0
18
32
 
19
33
  ### New features
data/README.md CHANGED
@@ -3,23 +3,19 @@
3
3
  This repo contains the Ruby gem that distributes the [Tech Docs Template][tdt-template]. The Tech Docs Template is a [middleman template][mmt] that
4
4
  you can use to build technical documentation using a GOV.UK style.
5
5
 
6
- 👉 Find out more about the template and its features from the [Tech Docs Template documentation][tdt-docs].
7
-
8
- ## Usage
9
-
10
- 👉 Find out how to [generate a new website with the Tech Docs Template][tdt-readme].
6
+ To find out more about setting up and managing content for a website using this template, see the [Tech Docs Template documentation][tdt-docs].
11
7
 
12
8
  ## Contributing
13
9
 
14
10
  Everybody who uses this project is encouraged to contribute.
15
11
 
16
- 👉 [See CONTRIBUTING.md](CONTRIBUTING.md) for guidance on making changes.
12
+ You can find out more about contributing to this project from the[CONTRIBUTING.md file](CONTRIBUTING.md).
17
13
 
18
14
  ## GOV.UK frontend
19
15
 
20
16
  This gem uses [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend), part of the [GOV.UK Design System](https://design-system.service.gov.uk/).
21
17
 
22
- We use `npm` to download the govuk-frontend package. To update to a new version, change the version in [package.json](blob/master/package.json) and run `npm update`.
18
+ We use `npm` to download the govuk-frontend package. To update to a new version, change the version in the [package.json file](blob/master/package.json) and run `npm update`.
23
19
 
24
20
  ## Developing locally
25
21
 
@@ -30,19 +26,13 @@ There are 2 ways to develop with this gem. You can see your changes on either:
30
26
 
31
27
  ### Use your own Tech Docs Template website
32
28
 
33
- If you want to see how your changes to the gem affect your website, you have to point your site's Gemfile to your local checkout:
29
+ To see how your changes to the gem affect your website, point your website's Gemfile to your local checkout:
34
30
 
35
31
  ```rb
36
32
  gem 'govuk_tech_docs', path: '../tech-docs-gem'
37
33
  ```
38
34
 
39
- To view your changes locally run:
40
-
41
- ```sh
42
- bundle exec middleman server
43
- ```
44
-
45
- See your website on `http://localhost:4567` in your browser.
35
+ To preview your documentation changes locally, see the [Tech Docs Template documentation on previewing your documentation](https://tdt-documentation.london.cloudapps.digital/create_project/preview/#preview-your-documentation).
46
36
 
47
37
  ### Use the example in this repo
48
38
 
@@ -56,14 +46,16 @@ bundle exec middleman server
56
46
 
57
47
  See your website on `http://localhost:4567` in your browser.
58
48
 
49
+ For more information on previewing your documentation locally, see the [Tech Docs template documentation on previewing your documentation](https://tdt-documentation.london.cloudapps.digital/create_project/preview/#preview-your-documentation).
50
+
59
51
  ## Tests
60
52
 
61
- The repository contains automated JavaScript tests that use [Jasmine][jas] test framework.
53
+ This repository contains automated JavaScript tests that use the [Jasmine test framework][jas].
62
54
 
63
- To run the tests and see the results in your browser:
55
+ You can run these tests and see the results in your browser.
64
56
 
65
- 1. Run `bundle exec rake jasmine`
66
- 2. Go to `http://localhost:8888` in your browser
57
+ 1. Run `bundle exec rake jasmine`.
58
+ 2. Go to `http://localhost:8888` in your browser.
67
59
 
68
60
  To run the tests and see the results in your terminal, run:
69
61
 
@@ -73,14 +65,15 @@ bundle exec rake jasmine:ci
73
65
 
74
66
  ## Releasing new versions
75
67
 
76
- To release a new version, create a new Pull Request that updates [version.rb](lib/govuk_tech_docs/version.rb) and [CHANGELOG.md](CHANGELOG.md). Don't mix this in with other changes - this makes it easier to find out what was released when. See [this PR to release a new version as an example](https://github.com/alphagov/tech-docs-gem/pull/15).
68
+ To release a new version, create a new pull request (PR) that updates [version.rb](lib/govuk_tech_docs/version.rb) and [CHANGELOG.md](CHANGELOG.md).
69
+
70
+ Do not include other changes in your pull request, as this makes it easier to find out what was released when. See an example of a [PR for releasing a new version](https://github.com/alphagov/tech-docs-gem/pull/15).
77
71
 
78
72
  Travis will automatically release a [new version to Rubygems.org](https://rubygems.org/gems/govuk_tech_docs).
79
73
 
80
74
  ## Licence
81
75
 
82
- Unless stated otherwise, the codebase is released under [the MIT License][mit].
83
- This covers both the codebase and any sample code in the documentation.
76
+ Unless stated otherwise, the codebase is released under [the MIT License][mit]. This covers both the codebase and any sample code in the documentation.
84
77
 
85
78
  The documentation is [© Crown copyright][copyright] and available under the terms of the [Open Government 3.0][ogl] licence.
86
79
 
@@ -6,6 +6,7 @@
6
6
  Modules.Search = function Search () {
7
7
  var s = this
8
8
  var $html = $('html')
9
+ var $tocNav
9
10
  var $searchForm
10
11
  var $searchLabel
11
12
  var $searchInput
@@ -26,6 +27,7 @@
26
27
  $searchResults = $searchResultsWrapper.find('.search-results__content')
27
28
  $searchResultsTitle = $searchResultsWrapper.find('.search-results__title')
28
29
  $searchResultsClose = $searchResultsWrapper.find('.search-results__close')
30
+ $tocNav = $('#toc')
29
31
  s.downloadSearchIndex()
30
32
  attach()
31
33
  changeSearchLabel()
@@ -67,7 +69,14 @@
67
69
  $searchForm.on('submit', function (e) {
68
70
  e.preventDefault()
69
71
  showResults()
70
- $searchResults.find('.search-result__title a').first().focus()
72
+ var $firstResult = $searchResults.find('.search-result__title a').first()
73
+ if ($firstResult.length) {
74
+ $firstResult.focus()
75
+ } else {
76
+ // if there are no results, show the "0 results" state
77
+ results = []
78
+ updateTitle()
79
+ }
71
80
  })
72
81
 
73
82
  // Closing the search results, move focus back to the search input
@@ -98,7 +107,7 @@
98
107
  }
99
108
 
100
109
  function changeSearchLabel () {
101
- $searchLabel.text('Search')
110
+ $searchLabel.text('Search this documentation')
102
111
  }
103
112
 
104
113
  function getResults (query) {
@@ -192,12 +201,14 @@
192
201
  $searchResultsWrapper.addClass('is-open')
193
202
  .attr('aria-hidden', 'false')
194
203
  $html.addClass('has-search-results-open')
204
+ $tocNav.addClass('search-results-open')
195
205
  }
196
206
 
197
207
  function hideResults () {
198
208
  $searchResultsWrapper.removeClass('is-open')
199
209
  .attr('aria-hidden', 'true')
200
210
  $html.removeClass('has-search-results-open')
211
+ $tocNav.removeClass('search-results-open')
201
212
  }
202
213
 
203
214
  function sendQueryToAnalytics () {
@@ -7,23 +7,22 @@
7
7
  var $toc
8
8
  var $tocList
9
9
 
10
- var $openLink
11
- var $closeLink
10
+ var $openButton
11
+ var $closeButton
12
12
 
13
13
  this.start = function ($element) {
14
14
  $toc = $element
15
15
  $tocList = $toc.find('.js-toc-list')
16
-
17
16
  // Open link is not inside the module
18
- $openLink = $html.find('.js-toc-show')
19
- $closeLink = $toc.find('.js-toc-close')
17
+ $openButton = $html.find('.js-toc-show')
18
+ $closeButton = $toc.find('.js-toc-close')
20
19
 
21
20
  fixRubberBandingInIOS()
22
21
  updateAriaAttributes()
23
22
 
24
23
  // Need delegated handler for show link as sticky polyfill recreates element
25
- $openLink.on('click.toc', preventingScrolling(openNavigation))
26
- $closeLink.on('click.toc', preventingScrolling(closeNavigation))
24
+ $openButton.on('click.toc', preventingScrolling(openNavigation))
25
+ $closeButton.on('click.toc', preventingScrolling(closeNavigation))
27
26
  $tocList.on('click.toc', 'a', closeNavigation)
28
27
 
29
28
  // Allow aria hidden to be updated when resizing from mobile to desktop or
@@ -65,21 +64,17 @@
65
64
 
66
65
  toggleBackgroundVisiblity(false)
67
66
  updateAriaAttributes()
68
-
69
- focusFirstLinkInToc()
67
+ $toc.focus()
70
68
  }
71
69
 
72
70
  function closeNavigation () {
73
71
  $html.removeClass('toc-open')
72
+ $html.removeClass('has-search-results-open')
74
73
 
75
74
  toggleBackgroundVisiblity(true)
76
75
  updateAriaAttributes()
77
76
  }
78
77
 
79
- function focusFirstLinkInToc () {
80
- $('a', $tocList).first().focus()
81
- }
82
-
83
78
  function toggleBackgroundVisiblity (visibility) {
84
79
  $('.toc-open-disabled').attr('aria-hidden', visibility ? '' : 'true')
85
80
  }
@@ -87,7 +82,7 @@
87
82
  function updateAriaAttributes () {
88
83
  var tocIsVisible = $toc.is(':visible')
89
84
 
90
- $($openLink).add($closeLink)
85
+ $($openButton).add($closeButton)
91
86
  .attr('aria-expanded', tocIsVisible ? 'true' : 'false')
92
87
 
93
88
  $toc.attr('aria-hidden', tocIsVisible ? 'false' : 'true')
@@ -1,16 +1,9 @@
1
+ $input-size: 40px;
2
+
1
3
  @include govuk-media-query($media-type: screen) {
2
4
  .page-title + .search {
3
5
  margin-top: govuk-spacing(6);
4
6
  }
5
-
6
- .js .search__label {
7
- position: absolute;
8
- left: -9999em;
9
- top: auto;
10
- width: 1px;
11
- height: 1px;
12
- overflow: hidden;
13
- }
14
7
  }
15
8
 
16
9
  @include govuk-media-query($media-type: print) {
@@ -19,6 +12,46 @@
19
12
  }
20
13
  }
21
14
 
15
+ .js .search__label {
16
+ @extend .govuk-visually-hidden;
17
+ }
18
+
19
+ .search__form {
20
+ position: relative;
21
+ }
22
+
23
+ .search__input {
24
+ width: 230px;
25
+ width: calc(100% - #{$input-size});
26
+ }
27
+
28
+ .search__button {
29
+ position: absolute;
30
+ bottom: 0;
31
+ right: 0;
32
+ border: 0;
33
+ background-color: govuk-colour('blue');
34
+ color: #fff;
35
+ cursor: pointer;
36
+ padding: 0;
37
+ width: $input-size;
38
+ height: 100%;
39
+ background-image: url('/images/search-button.png');
40
+ background-repeat: no-repeat;
41
+ background-position: 2px 50%;
42
+ text-indent: -5000px;
43
+ overflow: hidden;
44
+ &:focus {
45
+ outline: $govuk-focus-width solid $govuk-focus-colour;
46
+ outline-offset: 0;
47
+ box-shadow: inset 0 0 0 $govuk-border-width-form-element * 2 govuk-colour("black");
48
+
49
+ @include govuk-if-ie8 {
50
+ border-width: $govuk-border-width-form-element * 2;
51
+ }
52
+ }
53
+ }
54
+
22
55
  html.has-search-results-open {
23
56
  overflow: hidden;
24
57
  .app-pane__content {
@@ -47,6 +80,7 @@ html.has-search-results-open {
47
80
  top: 0;
48
81
  // The width of the sidebar
49
82
  left: 330px;
83
+ min-height: auto;
50
84
  }
51
85
 
52
86
  a:link, a:visited {
@@ -118,11 +118,20 @@
118
118
  }
119
119
 
120
120
  pre {
121
+ $padding: 15px;
122
+ $border-width: 1px;
123
+
121
124
  background: $code-00;
122
- padding: 15px;
125
+ padding: $padding;
123
126
  overflow: auto;
124
127
  position: relative;
125
- border: 1px solid $code-02;
128
+ border: $border-width solid $code-02;
129
+
130
+ &:focus {
131
+ padding: $padding - ($govuk-focus-width - $border-width);
132
+ border: $govuk-focus-width solid $govuk-focus-text-colour;
133
+ outline: $govuk-focus-width solid $govuk-focus-colour;
134
+ }
126
135
  }
127
136
 
128
137
  pre code {
@@ -127,7 +127,7 @@
127
127
  display: block;
128
128
  position: relative;
129
129
  z-index: 10;
130
-
130
+ width: 100%;
131
131
  padding: govuk-spacing(3) govuk-spacing(3) 10px;
132
132
 
133
133
  background: govuk-colour("light-grey");
@@ -135,10 +135,12 @@
135
135
  background: transparentize(govuk-colour("light-grey"), 0.05);
136
136
  backdrop-filter: blur(2px);
137
137
  }
138
+ border: 0;
138
139
  border-bottom: 1px solid govuk-colour("mid-grey");
139
140
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
140
141
  color: $govuk-text-colour;
141
142
  text-decoration: none;
143
+ text-align: left;
142
144
 
143
145
  &:focus {
144
146
  @include govuk-focused-text;
@@ -163,6 +165,9 @@
163
165
 
164
166
  .toc__list {
165
167
  margin-right: govuk-spacing(7);
168
+ &.search-results-open {
169
+ display: none;
170
+ }
166
171
  }
167
172
 
168
173
  .toc__close {
@@ -170,7 +175,7 @@
170
175
  position: sticky;
171
176
  right: 0;
172
177
  top: 0;
173
-
178
+ border: 0;
174
179
  float: right;
175
180
  width: 20px;
176
181
  height: 20px;
@@ -207,6 +212,10 @@
207
212
  height: 100%;
208
213
  overflow: hidden;
209
214
  pointer-events: none;
215
+ // set visibility hidden on the body when TOC is open
216
+ // this is a hack to prevent tabbing to out-of-view elements when the TOC is active
217
+ // it's preferable to keyboard trapping... probably.
218
+ visibility: hidden;
210
219
  }
211
220
 
212
221
  .toc-show {
@@ -214,6 +223,7 @@
214
223
  }
215
224
 
216
225
  .toc {
226
+ visibility: visible;
217
227
  display: block;
218
228
  pointer-events: auto;
219
229
  position: fixed;
@@ -20,7 +20,7 @@ module GovukTechDocs
20
20
  end
21
21
 
22
22
  def image(link, *args)
23
- %(<a href="#{link}" target="_blank" rel="noopener noreferrer">#{super}</a>)
23
+ %(<a href="#{link}" rel="noopener noreferrer">#{super}</a>)
24
24
  end
25
25
 
26
26
  def table(header, body)
@@ -30,5 +30,79 @@ module GovukTechDocs
30
30
  </table>
31
31
  </div>)
32
32
  end
33
+
34
+ def table_row(body)
35
+ # Post-processing the table_cell HTML to implement row headings.
36
+ #
37
+ # Doing this in table_row instead of table_cell is a hack.
38
+ #
39
+ # Ideally, we'd use the table_cell callback like:
40
+ #
41
+ # def table_cell(content, alignment, header)
42
+ # if header
43
+ # "<th>#{content}</th>"
44
+ # elsif content.start_with? "# "
45
+ # "<th scope="row">#{content.sub(/^# /, "")}</th>"
46
+ # else
47
+ # "<td>#{content}</td>"
48
+ # end
49
+ # end
50
+ #
51
+ # Sadly, Redcarpet's table_cell callback doesn't allow you to distinguish
52
+ # table cells and table headings until https://github.com/vmg/redcarpet/commit/27dfb2a738a23aadd286ac9e7ecd61c4545d29de
53
+ # (which is not yet released). This means we can't use the table_cell callback
54
+ # without breaking column headers, so we're having to hack it in table_row.
55
+
56
+ fragment = Nokogiri::HTML::DocumentFragment.parse(body)
57
+ fragment.children.each do |cell|
58
+ next unless cell.name == "td"
59
+ next if cell.children.empty?
60
+
61
+ first_child = cell.children.first
62
+ next unless first_child.text?
63
+
64
+ leading_text = first_child.content
65
+ next unless leading_text.start_with?("#")
66
+
67
+ cell.name = "th"
68
+ cell["scope"] = "row"
69
+ first_child.content = leading_text.sub(/# */, "")
70
+ end
71
+
72
+ tr = Nokogiri::XML::Node.new "tr", fragment
73
+ tr.children = fragment.children
74
+
75
+ tr.to_html
76
+ end
77
+
78
+ def block_code(text, lang)
79
+ if defined?(super)
80
+ # Post-processing the block_code HTML to implement tabbable code blocks.
81
+ #
82
+ # Middleman monkey patches the Middleman::Renderers::MiddlemanRedcarpetHTML
83
+ # to include Middleman::Syntax::RedcarpetCodeRenderer. This defines its own
84
+ # version of `block_code(text, lang)` which we can call with `super`.
85
+
86
+ fragment = Nokogiri::HTML::DocumentFragment.parse(super)
87
+ fragment.traverse do |element|
88
+ if element.name == "pre" && element["tabindex"].nil?
89
+ element["tabindex"] = "0"
90
+ end
91
+ end
92
+ fragment.to_html
93
+ else
94
+ # If syntax highlighting with redcarpet isn't enabled, super will not
95
+ # be `defined?`, so we can jump straight to rendering HTML ourselves.
96
+
97
+ fragment = Nokogiri::HTML::DocumentFragment.parse("")
98
+ pre = Nokogiri::XML::Node.new "pre", fragment
99
+ pre["tabindex"] = "0"
100
+ code = Nokogiri::XML::Node.new "code", fragment
101
+ code["class"] = lang
102
+ code.content = text
103
+ pre.add_child code
104
+ pre.to_html
105
+ end
106
+ end
33
107
  end
34
108
  end
@@ -1,3 +1,3 @@
1
1
  module GovukTechDocs
2
- VERSION = "2.1.1".freeze
2
+ VERSION = "2.2.0".freeze
3
3
  end
Binary file
@@ -1,16 +1,22 @@
1
1
  <% if config[:tech_docs][:enable_search] %>
2
2
  <div class="search" data-module="search">
3
- <form action="https://www.google.co.uk/search" method="get" role="search">
3
+ <form action="https://www.google.co.uk/search" method="get" role="search" class="search__form govuk-!-margin-bottom-4">
4
4
  <input type="hidden" name="as_sitesearch" value="<%= config[:tech_docs][:host] %>"/>
5
- <label class="govuk-label search__label" for="search">
5
+ <label class="govuk-label search__label" for="search" aria-hidden="true">
6
6
  Search (via Google)
7
7
  </label>
8
- <input class="govuk-input govuk-!-margin-bottom-4" id="search" name="q" type="text" aria-controls="search-results" placeholder="Search">
8
+ <input
9
+ type="text"
10
+ id="search" name="q"
11
+ class="govuk-input govuk-!-margin-bottom-0 search__input"
12
+ aria-controls="search-results"
13
+ placeholder="Search">
14
+ <button type="submit" class="govuk-button search__button">Search</button>
9
15
  </form>
10
16
  <div id="search-results" class="search-results" aria-hidden="true" role="dialog" aria-labelledby="search-results-title">
11
17
  <div class="search-results__inner">
12
18
  <button class="search-results__close">Close<span class="search-results__close-label"> search results</span></button>
13
- <h2 id="search-results-title" class="search-results__title" aria-live="polite">Results</h2>
19
+ <h2 id="search-results-title" class="search-results__title" aria-live="assertive" role="alert">Results</h2>
14
20
  <div class="search-results__content"></div>
15
21
  </div>
16
22
  </div>
@@ -34,18 +34,18 @@
34
34
 
35
35
  <% if content_for? :sidebar %>
36
36
  <div id="toc-heading" class="toc-show fixedsticky">
37
- <a href="#toc" class="toc-show__label js-toc-show" aria-controls="toc">
37
+ <button type="button" class="toc-show__label js-toc-show" aria-controls="toc">
38
38
  Table of contents <span class="toc-show__icon"></span>
39
- </a>
39
+ </button>
40
40
  </div>
41
41
  <% end %>
42
42
 
43
43
  <div class="app-pane__body"<%= " data-module=\"#{yield_content(:toc_module)}\"" if content_for? :toc_module %>>
44
44
  <% if content_for? :sidebar %>
45
45
  <div class="app-pane__toc">
46
- <div class="toc" data-module="table-of-contents">
46
+ <div class="toc" data-module="table-of-contents" tabindex="-1" aria-label="Table of contents" role="dialog">
47
47
  <%= partial "layouts/search" %>
48
- <a href="#" class="toc__close js-toc-close" aria-controls="toc" aria-label="Hide table of contents"></a>
48
+ <button type="button" class="toc__close js-toc-close" aria-controls="toc" aria-label="Hide table of contents"></button>
49
49
  <nav id="toc" class="js-toc-list toc__list" aria-labelledby="toc-heading"<%= " data-module=\"collapsible-navigation\"" if config[:tech_docs][:collapsible_nav] %>>
50
50
  <%= yield_content :sidebar %>
51
51
  </nav>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_tech_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-16 00:00:00.000000000 Z
11
+ date: 2021-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -327,6 +327,7 @@ extensions: []
327
327
  extra_rdoc_files: []
328
328
  files:
329
329
  - ".editorconfig"
330
+ - ".github/pull_request_template.md"
330
331
  - ".gitignore"
331
332
  - ".nvmrc"
332
333
  - ".rspec"
@@ -433,6 +434,7 @@ files:
433
434
  - lib/source/images/govuk-icn-close@2x.png
434
435
  - lib/source/images/govuk-icn-numbered-list.png
435
436
  - lib/source/images/govuk-icn-numbered-list@2x.png
437
+ - lib/source/images/search-button.png
436
438
  - lib/source/images/search-result-caret.svg
437
439
  - lib/source/layouts/_analytics.erb
438
440
  - lib/source/layouts/_footer.erb