From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id eOgiHbd0NWN0RQEAbAwnHQ (envelope-from ) for ; Thu, 29 Sep 2022 12:34:31 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id ONUgHbd0NWMU/QAA9RJhRA (envelope-from ) for ; Thu, 29 Sep 2022 12:34:31 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 0E4DAA827 for ; Thu, 29 Sep 2022 12:34:31 +0200 (CEST) Received: from localhost ([::1]:52232 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1odqs9-0003wz-ON for larch@yhetil.org; Thu, 29 Sep 2022 06:34:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49076) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odqmL-0001Lc-BF for emacs-orgmode@gnu.org; Thu, 29 Sep 2022 06:28:29 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]:34587) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1odqmJ-0002gy-4n for emacs-orgmode@gnu.org; Thu, 29 Sep 2022 06:28:29 -0400 Received: by mail-pf1-x42d.google.com with SMTP id e68so1073350pfe.1 for ; Thu, 29 Sep 2022 03:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:from:to:cc:subject:date; bh=nFLlINBqnOsqmyYz2sQfDbPsv+ABqGG/BSsTQ3br7vQ=; b=i5lcvnevracuoBKRLM4JnMODGdAV+EQS1EBOr7Mk73eGCC9SO3EYrU78KOodtEvo/n 9nfJJYFTROW0YhbpbtFXKo3CPZE27VvKm46UhSi/3hj4XnooIc7R2dR0jtUYKwgT4UcB DX3823LAkueKeUSfbnQikHItExkR6tBRixP+d9A0cZCXpGnDBrmbDXJBhC6kqeixI16W 40EtpX6DlDgAdIkG1PqY4hEKlfFcfVjf6rpuGXJ9ylAhs0lCpbb7QlayjY0wQ0dNQ8NJ NgVyar162Y2pN0ne8cQ+wQT/UQZGZxjKJbUxmdx6edUYqslaZH6FkJP3Wk4uUksds9+E p75w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:x-gm-message-state:from:to:cc:subject:date; bh=nFLlINBqnOsqmyYz2sQfDbPsv+ABqGG/BSsTQ3br7vQ=; b=gczU90UgZAIcv3PRwzcfFPyFssJu6ujG8ryM1f1sDSBVbg1iENznuPHgZ59Y0f5J3P EctPu3XgFVj0THYRhRfZDU504hkL/WH4abSXABbU32GfeHiWIrRZkk58ymkJ1WO3TGeK c4jdELT4PDrVj7YZSs/ATHzFCD4+DrWCwYCQWEz0M4exg/66rI1rzkpRBbFcjtlLE96Q g3UpcLCpKYloewyNus1hSBuHhrKCzIozAyXABh+fhAXG20EFcK5wsrc/5MVXsxk0otBP ym7/Og7689y2n/yKnFNXVI1B/W75zTw2cSgBb/1y8HmEF2ya79iALudfSg1fmK95qks/ V2/Q== X-Gm-Message-State: ACrzQf1Wct28CVd1oNuKcON6k0XSrTyztnAVybYe7TudBVgV2teZiUbI gk5mWIVZu9zyIujvZWvroxcCgOKOyp0= X-Google-Smtp-Source: AMsMyM41mtf+Eig9FWYypfNSEGdzTS6V7pfh2NFaFOxk5e0dSJecZHyWn37aSCJtUuqe50Kn33peDA== X-Received: by 2002:a65:4303:0:b0:439:f026:ccee with SMTP id j3-20020a654303000000b00439f026cceemr2306514pgq.322.1664447304017; Thu, 29 Sep 2022 03:28:24 -0700 (PDT) Received: from dingbat (2001-44b8-31f2-bb00-842a-7361-87c7-2662.static.ipv6.internode.on.net. [2001:44b8:31f2:bb00:842a:7361:87c7:2662]) by smtp.gmail.com with ESMTPSA id n23-20020a635c57000000b004277f43b736sm5115912pgm.92.2022.09.29.03.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Sep 2022 03:28:23 -0700 (PDT) References: <87a66lpm5p.fsf@localhost> <8735cdpkiz.fsf@localhost> <87y1u5o1ko.fsf@localhost> <87a66k2j5y.fsf@tec.tecosaur.net> <7edd911f-b74-6521-634e-7f30acdb5fad@panix.com> <867d1nj1yn.fsf@gmail.com> <877d1n3ky0.fsf@tec.tecosaur.net> <86tu4ro11c.fsf@gmail.com> <87edvu95yr.fsf@localhost> User-agent: mu4e 1.9.0; emacs 29.0.50 From: Tim Cross To: Ihor Radchenko Cc: Timothy , Jude DaShiell , emacs-orgmode@gnu.org Subject: Re: Org HTML export accessibility (was: org exported pdf files) Date: Thu, 29 Sep 2022 18:22:16 +1000 In-reply-to: <87edvu95yr.fsf@localhost> Message-ID: <86pmfeo4os.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=theophilusx@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1664447671; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=nFLlINBqnOsqmyYz2sQfDbPsv+ABqGG/BSsTQ3br7vQ=; b=iAXZf49CiPrJM3qPfrPm0b9aw/fglukxWKNQk7JBAKAY08M9jKpFs0gi4CpGAqO/MEQFqO BQoWleGiFCz8WBHtW5/pW84GS+w6QCZtIESNHoJufaockZZcps57QrAuNtuxUmZv/D9J72 7Pl/f8uugxgEIZtt2WqZRT5uFpXt5OzEVDmj8b74B6WrA3pOwL01OZa+h67qxclwFtM6WO /uns2YJWaWCPkAmgg1VeSvFezeC7PXUsqMHV5SCbjQtnYUZf+nvP+KxPbO0RgYRImbMsr8 KGmT/1Y4MVO/Vd1QvqVADHtpEqV2m/PbYTqwh7g4Wsyv2HGQthzjYfljkXxlbg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1664447671; a=rsa-sha256; cv=none; b=LBCoVRWmU8Jtw0g0w3FnlLvqK3SQqR9loKbcq9SyHCMJ5+mSeUfLvIaOcqC4e4ZTo3v41x ORHwxxygXCoYCEmcjOLILYI1t7Itth7mcbAOqvAiEJ0PMsiJvK2Pmu5eZf7Cusx3O7H0vr UgbIzH98d+4z3Z/GflMH0NoRQkDRL3NajMtCiHNYFjL6WP4bOlnMnOWs0Vyb0CcreN6RQk DQYH987yjzTXaV2XNihUABZNk3sKdGttzSbR6d4IT2xFt5veAHD1/bMeaxjaYiIt1FHGjq lvXuMt3E6gDVKfavuv6q7qsBxAH0vJpH4o27mWBKhw6CR9YDWMsD7dJ7I6srfw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=i5lcvnev; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.34 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=i5lcvnev; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 0E4DAA827 X-Spam-Score: -2.34 X-Migadu-Scanner: scn1.migadu.com X-TUID: K+NLzgR1sZfL Ihor Radchenko writes: > Tim Cross writes: > >> Note that org also lacks any accessibility support for HTML generated >> documents as well. However, this is less problematic as authors do have >> some ability to add the necessary attributes that can improve >> accessibility - an option not available with Latex. > > Can we do anything about it? > Are there any available standards on how accessible HTML document should > look like? > > Unlike PDF where we rely on LaTeX, Org generates the final form of the > HTML documents. Hence, we have the full control (and responsibility) to > support accessibility. At least, as a customization. Yes, there are 2 standards/guidelines which are probably relevant for org mode - Web Content Accessibility Guide (WCAG v2) https://www.w3.org/WAI/standards-guidelines/wcag/glance/ and the - Authoring Tools Accessibility Guide (ATAG) https://www.w3.org/WAI/standards-guidelines/atag/ The first standard is about ensuring content is as accessible as possible. The second one is about ensuring authoring tools are accessible and on how authoring tools can be implemented to assist people in creating accessible content. It is this last goal which makes the second standard potentially relevant for org mode. There are also a number of tools out there which can be used to evaluate the accessibility of specific content. However, I find such tools are of limited benefit. The problem is, such tools rely heavily on conventions and heuristics. For example, they can alert you to images with no alt attribute. However, sometimes, not having an alt attribute actually improves accessibility (there is nothing worse than a web document which has alt tags on images used solely for formatting purposes!). The big difference between PDF and HTML is that HTML is essentially a 'tagged' format. In many respects, this makes it much easier. However, it also puts more responsibility on the author. >From an org-mode perspective, the key things which need to be maintained (and which perhaps we could make even easier or possibly have 'defaults') is the ability to add the alt attribute to any non-text element. For example, images, videos, sound files etc. All such content should always have some text describing the 'element'. However, it is also important to be able to not have an alt tag in some situations (for example, when using images as 'spacers' for formatting etc, we don't want an alt tag. Things to be aware of are things like using single characters or symbols (e.g. < and > for previous/next) or using unicode and other symbols whose meaning/purpose may seem very obvious when viewed, but is less so when 'spoken'. >From an authoring perspective, it probably would be good if org mode was able to alert the user to content which lacks an alt attribute but which probably should have one e.g. an image with no caption, a link to a video/audio file etc. One area which may need more investigation is with the rendering of tabular data. Having the correct tags (i.e. for data and for headings, is very important. Other areas which may need to be verified as being formatted correctly with adequate ARIA attributes are elements relating to navigation, indexing and referencing/footnotes. The big problems with accessibility in web content tend to come about from dynamic content, javascript and CSS. Plain HTML documents tend to be quite good provided the appropriate tags have been used. Where things become difficult is when you have content which is rendered based on dynamic variables - for example, content which is hidden/revealed via mouse clicks etc. The other important area often overlooked and which probably does need some work done is with keyboard navigation. As you can probably imagine, for blind and vision impaired users, the mouse cursor is a challenge and any web page which requires you to move the mouse and click on an element/link can be a challenge. having consistent keyboard navigation is important. THis is particularly relevant when dealing with data input via web forms etc. Of course, there is one very good way to assess the accessibility of a web page - use a screen reader and try navigating, browsing and reading some content with your eyes closed. If, for example, you find when hitting tab to move through 'elements' in the page that it is impossible to follow the structure or flow of the content (either because tab results in focus jumping to some unexpected location or because the internal link names used are too obscure or because there simply isn't sufficient contextual information, then there is an issue. The next step is to determine if this issue is because of how org mode is generating the output or because the author has used or failed to use appropriate alt tags etc. Note that all major platforms have free screen reader software available. For Apple and ChromeOS, it is part of the platform and just needs to be turned on. For windows, there is NVDA and for Linux there are a number of solutions, but Orca is probably a reasonable choice. There are also a number of browser extension modules which can add screen reader type functionality to chrome or firefox. I would encourage everyone to at least try using a screen reader to browse some content. Many of the concepts associated with accessibility can be difficult to appreciate without more context. Trying to browse a few web pages with a screen reader and your eyes closed can provide that context.