14:44:58 RRSAgent has joined #pronunciation 14:45:03 logging to https://www.w3.org/2025/06/02-pronunciation-irc 14:45:03 RRSAgent, make logs Public 14:45:04 please title this meeting ("meeting: ..."), PaulG 14:45:08 Agenda+ Agenda Review, Membership & Announcements 14:45:08 Agenda+ Special Presentation 14:45:08 Agenda+ Other Business. 14:45:23 chair: PaulG 14:45:54 present+ 14:58:03 zakim, take up next item 14:58:03 agendum 1 -- Agenda Review, Membership & Announcements -- taken up [from PaulG] 15:02:33 matatk has joined #pronunciation 15:02:37 present+ 15:02:55 ddahl has joined #pronunciation 15:03:02 agenda? 15:03:10 IrfanA has joined #pronunciation 15:03:11 dan-tripp has joined #pronunciation 15:03:13 Alan has joined #pronunciation 15:03:18 present+ 15:03:21 present+ 15:03:24 Fredrik has joined #pronunciation 15:03:36 present+ 15:03:44 present+ 15:03:51 present+ 15:03:58 scribe+ 15:04:02 present+ Janina 15:04:07 rrsagent, make minutes 15:04:08 I have made the request to generate https://www.w3.org/2025/06/02-pronunciation-minutes.html matatk 15:04:15 Steve_Noble has joined #pronunciation 15:04:15 agenda? 15:04:20 zakim, next item 15:04:20 agendum 2 -- Special Presentation -- taken up [from PaulG] 15:04:25 *general introductions* 15:10:02 zakim, take up next item 15:10:02 agendum 3 -- Other Business. -- taken up [from PaulG] 15:10:13 present+ Steve Noble 15:10:15 zakim, take up item 2 15:10:15 agendum 2 -- Special Presentation -- taken up [from PaulG] 15:12:16 Calendar entry - links to spec, and video: https://www.w3.org/events/meetings/3e929640-52d5-4bf1-bcb0-021a2a5a8885/20250602T110000/ 15:17:02 *Dan runs the video and shows the page, inspecting the source to show how the SSML was JSONified. The NVDA plugin is doing all the voicing, and was inspired by a talk and conversation at CSUN* 15:17:09 *Group thanks Dan for the demo* 15:17:42 janina: This is compelling. The user shouldn't have to delve into the content character-by-character. 15:17:49 https://github.com/dan-tripp/nvda-add-on-data-ssml 15:18:06 dan-tripp: Talking more about how I did this. It's a bit of a hack! The repo above, and README explains how I did it. 15:18:17 dan-tripp: There are three techniques, each with pros and cons. 15:18:58 ... I ran some JS on the page and encodes all the SSML data on the page as Unicode zero-width characters, and adds them to the text content. They don't get announced by any screen readers I tested, but they are accessible via the NVDA plugin APIs. 15:19:15 ... an NVDA plugin can't get to the DOM, nor these attributes. But it can get this content. 15:19:38 ... This adds some junk to the page, which is bad - particularly for Braille output. It also messes up character-by-character navigation a bit, and the clipboard. 15:20:52 PaulG: The page-wide override technique is a bit of a hack as you say, but if we could get access to the accessibility tree this could mitigate those problems, as you wouldn't need the hack. Is that right? 15:20:54 dan-tripp: yes 15:21:42 dan-tripp: There's a hope that this may happen based on NVDA plugin threads I've been reading and Neil Soifer's work on math. The biggest problem is a as this doesn't cause accessibility info to come through as it's not represented in the accTree at all; just a bunch of text. 15:22:41 PaulG: Let's say we get to that future - we're trying to get to the point, as a TF, where we have that info in the accTree. Based on your experience, do you have any recommendations for us in terms of how we should proceed? 15:23:26 dan-tripp: I think I'd be getting out of my element; it might be the plugin I made shows what _not_ to do; there are a lot of hoops to jump through. Anything that accTree can do to remove those hoops is a good thing. 15:24:08 PaulG: I think what you said about generic s not being interesting enough for the accTree was a lightbulb moment for me - maybe we need more collab. with the folks specifying this. 15:24:41 ... If we can get parity with readaloud tools, but not AT, maybe we should start at the other end. The work that you were inspired by - Mark's presentation - that started with the markup first - how to shove that data into the markup. 15:24:53 ... Knowing that we got stuck, maybe we should start at the other end. 15:25:22 janina: I also was flagged by that comment that a span isn't interesting. I guess on a video display it's not interesting, but from our perspective maybe it is. 15:26:00 PaulG: We normally think of interactive roles as being interesting to the accTree. If we need a role, then we need to talk to ARIA. If we need that role to be present with some sort of structure/organization, we need to talk to the API folks. 15:27:24 ... The curriculum folks have done a fantastic job of outlining our use cases. If we can get the other end - to receive this info - then we have many options for markup. We pared it down to 2 last time, and neither was picked. The technology is still elusive to us as to how to get this into AT. We talked about CSS Speech, PLS, SSML, but we aren't 15:27:24 going to play favorites this time. 15:27:42 ... We intend to carve up the use cases and attack them individually, and hopefully build on that and solve the use cases, building as we go. 15:28:07 ... A lot of the folks we talked to got tripped up on pause/break - a lot of implementers said it would be difficult. Did you look at pause/break in this? 15:28:23 dan-tripp: There are large parts of SSML I didn't look at, and this was one of them. 15:28:53 PaulG: Where that appears may be an empty span, or on an element, prefixing or suffixing. It seemed like that was something that fit way better with CSS Speech. 15:29:24 ... CSS Speech also tried to solve _all_ these problems. So we were thinking of starting with just that part - pause/break - of CSS Speech. 15:29:55 ... When we talked to people like James Craig, the idea of maps came up for pronunciation (more JSON than PLS) but maybe the way is to attack each of these problems separately, and as best we can. 15:30:39 dan-tripp: Can confirm that the main problem is that access to the accTree is the biggest bottleneck. My plugin is standing on the shoulders of giants, but now that we are here, that accessibility API gap is the one I'm stuck about, and necessitated all these hacks. 15:31:06 ... I read all the struggles that NVDA plugin devs are having and it seems things are not practical because of the (lack of) OS API in this area. If you build it they will come. 15:31:14 q+ 15:33:01 dan-tripp: Re pause/break, I think that would be pretty straightforward to add support for in my NVDA plugin. Not a drastic departure from the other stuff. Can picture it on a technical level. I can put it on my TODO list! 15:34:01 Mark: With respect to CSS Speech on VoiceOver - what's the state of it? The support on mobile seemed to disappear. 15:34:21 tink: Yes, it did seem to disappear; not sure what the cause was. 15:35:18 *discussion about plugins for NVDA, Orca, possibly JAWS* 15:36:28 dan-tripp: I could look into the JAWS aspect here. 15:36:49 janina: If we're looking at exposing more via the accTree, what are the APIs we are talking about? ATK, IAccessible2, ... 15:37:24 ... if we build that kind of conversation, we may be hit with scope creep. There may be other people who would like to see these interfaces enhanced. They're 20 years old. 15:38:53 PaulG: The tech doesn't have to change, but the requirements for society may change. We thought we'd nailed it when we found browsers use SSML, and smart speakers do, and we wanted to bring SSML to the browser as a first-class object, but implementers did not want to take this approach. So we need to figure out what the path is for us to adoption. 15:39:16 janina: I want to make sure non screenreader people also read the accTree? 15:39:29 PaulG: Read aloud tools don't have access to the accTree - just markup. 15:41:09 matatk: we're rebooting the task force, we're updaing the documents, focusing on use cases over technology. We hope this will make more sense to implementers. We hope to be done this month with that first pass and a list of priority use cases. 15:41:36 ... we'd love to send you the rough draft for your review if you're willing. 15:42:04 q? 15:42:07 ack me 15:42:42 dan-tripp: I'd like to talk about what I think is most useful about the plugin... 15:43:24 ... the one technique that I called 'page-wide override' is the best, but it has one limitation, which is max number of overrides on the page for a given text string - and that's 1. E.g. you can, on a single page, get 3' announced as '3 prime' or '3 feet' but only one. 15:43:51 ... If you have small pages, then the plugin will work, but is it usable in a real-world situation, when this is the technique that you choose? I would love to have this tested. 15:44:29 ... This gets around the accTree limitation, but results in a bunch of junk at the end of the page in the footer. 15:45:28 PaulG: You could put JSON data in a