From 4e26526edcd63adb926a9d481e329aa899ba593f Mon Sep 17 00:00:00 2001 From: ellieplayswow <164806095+ellieplayswow@users.noreply.github.com> Date: Sun, 4 Oct 2026 16:49:41 +0100 Subject: [PATCH 1/8] a11y: homepage sweep - links: update blue slightly to better meet colour contrast reqs - workflow section: label each figure with existing h4 - workflow section: mark mail icon as aria-hidden="true" - showcase section: rework links into buttons with explicit aria-controls - showcase section: mark all tabs except current as hidden - header: add explicit title to elementary logo type - press: add explicit title to all logos - icons: mark some purely decorative icons as aria-hidden="true" --- _scripts/widgets/showcase.js | 25 +++++--- _styles/home.css | 11 ++++ _styles/main.css | 9 ++- .../actions/symbolic/appointment-symbolic.svg | 2 +- .../symbolic/edit-clear-all-symbolic.svg | 2 +- .../audio-input-microphone-symbolic.svg | 2 +- .../symbolic/changes-prevent-symbolic.svg | 2 +- images/logotype-os.svg | 2 +- .../apps/symbolic/flatpak.svg | 2 +- .../internet-web-browser-symbolic.svg | 2 +- images/thirdparty-logos/ars.svg | 2 +- images/thirdparty-logos/forbes.svg | 2 +- images/thirdparty-logos/lifehacker.svg | 2 +- images/thirdparty-logos/maclife.svg | 2 +- images/thirdparty-logos/wired.svg | 2 +- index.php | 58 +++++++++---------- 16 files changed, 77 insertions(+), 50 deletions(-) diff --git a/_scripts/widgets/showcase.js b/_scripts/widgets/showcase.js index 88c43b42ed..e6146f146c 100644 --- a/_scripts/widgets/showcase.js +++ b/_scripts/widgets/showcase.js @@ -43,16 +43,16 @@ export default class Showcase { start () { for (let i = 0; i < this.slides.length; i++) { const n = this.slides[i] - const $iChoice = $("[href$='" + n + "']", this.container) + const $iChoice = $("[aria-controls='" + n + "']", this.container) const $iContainer = $('#' + n, this.container) - $iContainer.prepend('
') + $iContainer.prepend('') // each choice button const that = this $iChoice.on('click', function (e) { e.preventDefault() - that.slideTo($(this).attr('href').split('#').pop()) // slide on click of button + that.slideTo($(this).attr('aria-controls')) // slide on click of button }) } @@ -98,10 +98,21 @@ export default class Showcase { return console.error("could not find requested slide '" + rSlide + "'") // log an error } + // update aria-expanded to alert which slide is active + $(this.container).find('button[aria-controls]').each(function() { + const $button = $(this) + if ($button.attr('aria-controls') === rSlide) { + $button.attr('aria-expanded', true) + } + else { + $button.attr('aria-expanded', false) + } + }) + if (rSlide === 'index') { - $(this.index, this.container).addClass('active') + $(this.index, this.container).addClass('active').attr('hidden', false) } else { - $(this.index, this.container).removeClass('active') + $(this.index, this.container).removeClass('active').attr('hidden', true) } // iterates through slides based on this.slides @@ -110,9 +121,9 @@ export default class Showcase { const $n = $('#' + n, this.container) // current iterated slide if (n === rSlide) { // if correct slide - $n.addClass('active') + $n.addClass('active').attr('hidden', false) } else { - $n.removeClass('active') + $n.removeClass('active').attr('hidden', true) } } diff --git a/_styles/home.css b/_styles/home.css index f8de69c741..8aaea7f167 100644 --- a/_styles/home.css +++ b/_styles/home.css @@ -220,6 +220,17 @@ input:focus + .focus-reveal { color: inherit; } +#showcase button { + background-color: transparent; + border: 0; + box-shadow: none; + background-image: none; + padding: 0; + margin: 0; + color: inherit; + text-shadow: inherit; +} + /******************** * showcase programs * ********************/ diff --git a/_styles/main.css b/_styles/main.css index 6f12259c5f..36ade62ff4 100644 --- a/_styles/main.css +++ b/_styles/main.css @@ -47,11 +47,16 @@ body { **************/ a { - color: #08c; - fill: #08c; + color: #007dbc; + fill: #007dbc; text-decoration: none; } +section.grey a { + color: #0079b6; + fill: #0079b6; +} + a:focus { text-decoration: underline; } diff --git a/images/icons/actions/symbolic/appointment-symbolic.svg b/images/icons/actions/symbolic/appointment-symbolic.svg index 343be92538..b8c5628729 100644 --- a/images/icons/actions/symbolic/appointment-symbolic.svg +++ b/images/icons/actions/symbolic/appointment-symbolic.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/actions/symbolic/edit-clear-all-symbolic.svg b/images/icons/actions/symbolic/edit-clear-all-symbolic.svg index db90bce878..3f7f6d55a7 100644 --- a/images/icons/actions/symbolic/edit-clear-all-symbolic.svg +++ b/images/icons/actions/symbolic/edit-clear-all-symbolic.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/devices/symbolic/audio-input-microphone-symbolic.svg b/images/icons/devices/symbolic/audio-input-microphone-symbolic.svg index 5834a1cd53..2e91f26681 100644 --- a/images/icons/devices/symbolic/audio-input-microphone-symbolic.svg +++ b/images/icons/devices/symbolic/audio-input-microphone-symbolic.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/status/symbolic/changes-prevent-symbolic.svg b/images/icons/status/symbolic/changes-prevent-symbolic.svg index 31b464254f..d82ee5261a 100644 --- a/images/icons/status/symbolic/changes-prevent-symbolic.svg +++ b/images/icons/status/symbolic/changes-prevent-symbolic.svg @@ -1 +1 @@ - + diff --git a/images/logotype-os.svg b/images/logotype-os.svg index 1bdd0cde61..865236806b 100644 --- a/images/logotype-os.svg +++ b/images/logotype-os.svg @@ -1 +1 @@ - \ No newline at end of file +elementary OS logo \ No newline at end of file diff --git a/images/thirdparty-icons/apps/symbolic/flatpak.svg b/images/thirdparty-icons/apps/symbolic/flatpak.svg index eba75f509a..43249c0f20 100644 --- a/images/thirdparty-icons/apps/symbolic/flatpak.svg +++ b/images/thirdparty-icons/apps/symbolic/flatpak.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/thirdparty-icons/apps/symbolic/internet-web-browser-symbolic.svg b/images/thirdparty-icons/apps/symbolic/internet-web-browser-symbolic.svg index e08fe56115..d2124d4230 100644 --- a/images/thirdparty-icons/apps/symbolic/internet-web-browser-symbolic.svg +++ b/images/thirdparty-icons/apps/symbolic/internet-web-browser-symbolic.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/thirdparty-logos/ars.svg b/images/thirdparty-logos/ars.svg index 72ab678507..bec4aa4251 100644 --- a/images/thirdparty-logos/ars.svg +++ b/images/thirdparty-logos/ars.svg @@ -1 +1 @@ - \ No newline at end of file +Ars Technica Logo \ No newline at end of file diff --git a/images/thirdparty-logos/forbes.svg b/images/thirdparty-logos/forbes.svg index 2b0d48ac72..44240612a9 100644 --- a/images/thirdparty-logos/forbes.svg +++ b/images/thirdparty-logos/forbes.svg @@ -1 +1 @@ - \ No newline at end of file +Forbes Logo \ No newline at end of file diff --git a/images/thirdparty-logos/lifehacker.svg b/images/thirdparty-logos/lifehacker.svg index b397ecccd0..39aaa05257 100644 --- a/images/thirdparty-logos/lifehacker.svg +++ b/images/thirdparty-logos/lifehacker.svg @@ -1 +1 @@ - \ No newline at end of file +Lifehacker Logo \ No newline at end of file diff --git a/images/thirdparty-logos/maclife.svg b/images/thirdparty-logos/maclife.svg index 888679096c..944ed097ee 100644 --- a/images/thirdparty-logos/maclife.svg +++ b/images/thirdparty-logos/maclife.svg @@ -1 +1 @@ - \ No newline at end of file +Mac|Life Logo \ No newline at end of file diff --git a/images/thirdparty-logos/wired.svg b/images/thirdparty-logos/wired.svg index d695c86e71..0638d2b64a 100644 --- a/images/thirdparty-logos/wired.svg +++ b/images/thirdparty-logos/wired.svg @@ -1 +1 @@ - \ No newline at end of file +WIRED Logo \ No newline at end of file diff --git a/index.php b/index.php index c5177ac6a9..1607e41fc8 100644 --- a/index.php +++ b/index.php @@ -175,37 +175,37 @@
-
+
-

Multitasking View

+

Multitasking View

Workspaces help organize your work by task. Keep work and play separate, but just one swipe or tap away.

-
+
Videos screenshot
-

Picture-in-Picture

+

Picture-in-Picture

Whether you’re watching a movie, game, or terminal process, Picture-in-Picture helps keep tabs on one thing while working on another.

-
+
Code screenshot
- +
- +
- +
-

Do Not Disturb

+

Do Not Disturb

Tune everything else out to stay focused on your work, or keep notifications at bay while watching a movie. Do Not Disturb stops notifications in their tracks.

@@ -218,19 +218,19 @@

elementary OS comes with a carefully considered set of apps that cater to everyday needs so you can spend more time using your computer and less time cleaning up bloatware.

-
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+