07:32:13 RRSAgent has joined #webdriver 07:32:18 logging to https://www.w3.org/2023/09/14-webdriver-irc 07:32:23 AutomatedTester_ has joined #webdriver 07:32:52 present+ 07:32:57 present+ 07:33:52 present+ 07:33:59 present+ 07:34:12 Meeting: Browser Tools & Testing @ TPAC 2023 - Day 1 07:34:26 RRSAgent: make logs public 07:34:35 RRSAgent: make minutes 07:34:36 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham_ 07:36:01 shs96c has joined #webdriver 07:36:03 Chair: David Burns 07:36:07 present+ 07:36:15 present+ 07:37:00 Topic: Agenda wrangling 07:38:41 wfilipek has joined #webdriver 07:39:07 when exactly we will have the breaks today? 07:39:22 is there a link to a schedule that we might want to follow? 07:39:31 present+ 07:39:31 present+ 07:39:38 lola_ has joined #webdriver 07:39:40 present+ 07:39:47 Breaks are 11-11:30 CEST and 16:30-17:00 07:39:56 Lunch is 13:00-14:30 07:40:00 present+ 07:40:20 https://www.w3.org/2023/09/TPAC/schedule.html#thursday 07:41:25 present+ 07:41:30 scribe: David Burns 07:41:36 scribenick: AutomatedTester 07:42:21 RRSAgent: make minutes 07:42:22 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham_ 07:42:50 q? 07:43:56 Topic: Resize and positioning windows 07:44:01 ali_spivak_ has joined #webdriver 07:44:09 Github: https://github.com/w3c/webdriver-bidi/issues/398 07:44:52 whimboo: I've added this and was curious if this is a high level priority from client vendors 07:45:25 jgraham: Classic webdriver has support for resizing and positioning. From the point of view of supporting classic we should add this 07:45:58 ... it has a lot of capabilities that are not available through device emulation 07:46:28 ... in classic webdriver there is some confusion between top level browser context and the OS window 07:46:55 ... the suggestion in the issue is that we have something has an a OS window id 07:47:07 ... and have top level context in that OS window 07:47:18 ... and then dimensions that are available 07:47:38 ... and then you can set the state of the window (max/min) 07:47:45 q+ 07:47:59 ... are there other use cases that we should see about addressing? 07:48:02 q? 07:48:06 ack next 07:48:39 shs96c: This is basically what we need to implement (points to classic spec section 11) 07:48:51 ... we are just going to lft that and shift it? 07:49:12 jgraham: yes 07:49:12 q+ 07:49:13 q+ 07:49:17 ... webdriver classic does a lot of things that says "please try" and it can fail 07:49:29 shs96c: yes... like mobile can';t do a lot of those things 07:50:07 jgraham: it is also fallible in some cases in there is a window manager that has no idea how to do that. E.g. window managers don't have max 07:50:29 shs96c: from where I am sitting this proposal looks good 07:50:53 ack next 07:51:31 orkon: from our perspective the proposal looks good 07:51:48 ... for the other things these are outside the browser 07:52:01 ... and more window manager controls 07:53:26 ... it would be good to get messages coming back about what can/cant be done 07:53:26 q+ 07:53:26 shs96c: people historically run tests in as big as possible and know it's not always perfect 07:53:26 ack next 07:53:26 https://github.com/web-platform-tests/wpt/pull/41588/files 07:53:26 whimboo: one follow up is I have updated the tests recently 07:53:58 ... so what ever we do in bidi should be easy to copy these tests across 07:53:58 whimboo: can you please share a link to that spreadsheet? 07:54:00 ... the priority on this still correct as it has a high priority 07:54:02 https://docs.google.com/spreadsheets/d/1Cg3rifrBZClIitU3aFW_WDv64gY3ge8xPtN-HE1qzrY/edit#gid=0 07:54:05 https://docs.google.com/spreadsheets/d/1Cg3rifrBZClIitU3aFW_WDv64gY3ge8xPtN-HE1qzrY/edit#gid=0 07:54:09 q? 07:54:32 ack next 07:54:47 shs96c: for selenoium it is still a high priority for what I mentioned earlier 07:55:06 ... one quick question, do we want to send events back or is it fire and forget? 07:55:40 jgraham: I think we should have a response with details of the window size it got to 07:56:09 ... and we can have an event that is fired if a new window is created or a resize happens from something else 07:56:30 shs96c: that would end up with 2 events? a window resize, window create 07:56:39 jgraham: 3. one for resize, create and destroyed 07:56:44 q+ 07:56:57 ack next 07:57:14 orkon: for events we should discuss events separately as that is not part of the current proposal 07:57:41 jgraham: I agree. It is lower priority and a lot of it is covered by context created 08:00:05 JuhaVainio has joined #webdriver 08:06:08 littledan has joined #webdriver 08:07:39 patrickbrosset has joined #webdriver 08:08:16 littledan_ has joined #webdriver 08:08:29 Topic: Capture full page screenshots 08:09:07 github: https://github.com/w3c/webdriver-bidi/issues/384 08:09:07 whimboo: We are already doing this in classic 08:09:24 ... for iewport or for an element 08:10:18 ... but there are a lot of users asking to capture the area offscreen to get a fullpage 08:10:18 ... so it will be great to discuss this 08:10:18 q+ 08:10:18 ack next 08:10:49 whimboo: we have already implmeneted this on Firefox in classic so we don't have an issue 08:10:49 present+ 08:10:59 q+ 08:10:59 orkon: we are also able to do a fullpage but making hte viewport as big as possible 08:12:23 ... we will not able to capture fullscreen shot screenshots of elements with overflow or iframes 08:12:23 ack next 08:12:31 jgraham: I think with screenshots there is already scenarios that can't be handled. e.g. in iframes 08:13:16 ... I don't think that people would want to handle the cases with scrolling of text in a box 08:14:03 ... functionally we should add an extra attribute e.g. fullscreen=true that takes the viewport of the scroll dimensions of the document 08:14:28 ... it also makes taking an screenshot of the element easier 08:14:37 q+ 08:14:38 q+ 08:14:39 and do the whole element 08:14:53 ... and I think that solves the main use cases 08:14:58 ack next 08:15:05 q+ 08:15:17 Jim Evans: just as a implementation detail on the spec 08:15:48 ... is therre any mileage for making a fullscreen clip rectangle or full page clip rectangle? 08:16:04 jgraham: I think the answer is yes 08:16:31 ... it would be a viewport clip rectangle that could take an element 08:16:42 q+ 08:17:05 ... the way it is written here doesn't take the whole matrix of choices in 08:17:13 ack next 08:17:47 q+ 08:18:08 orkon: I think that makes sense. I just want to point out that viewports can affect things here. We will need to make sure that we take the edge cases into account 08:18:17 ack next 08:18:36 sadym (IRC): is this different to what Mathias asked in the issue the other day? 08:19:01 ack next 08:19:32 Jim Evans: that makes sense to have a boolean property. I withdraw my previous suggestion 08:19:35 ack next 08:20:08 jgraham: I think the previous suggestion is quite good. the previous design is weird 08:20:30 ... we could do the fullscreen like an element clip rectangle 08:20:43 ... and it makes scroll into view mutally exclusive 08:20:59 q+ 08:21:11 ... it's not very explicit in the protocol how to handle this 08:22:02 q+ 08:22:04 ... I am not sure what the correct answer is here and don't have know how to handle it right now. I like the clip rect suggestion 08:22:05 ack next 08:22:23 shs96c: I like the clip to view port would be useful 08:22:57 ... we can do viewport false to get things of everything 08:23:31 ... the classic spec has a lot of "if in view" so a lot of people maximise the window to try get as much as possible in the window to remove flakiness and then want screenshots 08:23:43 ... and we still need to have resizing of windows 08:23:46 ack next 08:24:24 orkon: the browsing context can manipulate the viewport 08:24:50 ... I don't have an opinion other way 08:25:05 q+ 08:25:10 q+ 08:25:24 ... there is the question of scroll into view in screen shots 08:26:02 ack next 08:26:33 orkon: the issue is scroll into viewport has been merged into element screenshot 08:26:49 ... it's currently an option 08:27:35 ... it doesn't make sense for element screenshot to scroll if we are using it for full page 08:27:51 jgraham: so I agree it doesn't make sense there 08:27:52 q+ 08:28:08 ... for fullscreenshot. We can make a new command or a new attribute 08:28:16 q+ 08:28:35 ... the reason is due to classic 08:28:49 ... we could make it separate commands 08:29:26 ... if we can send 2 commands in one payload 08:30:25 ack next 08:31:23 automatedtester: The context for scrolling in element screenshots was this was a request from Microsoft to be able to try take a screenshot of an element in the view port by scrolling and then times when you just want the element and it should be out of the viewport. this is why it was originally designed that way 08:31:26 ack next 08:32:01 shs96c: some of the colour for this. IE could only give you the screen shots of the view port 08:32:24 qq+ jdescottes 08:32:36 ... since we only had a screen shots to scroll as we screenshots 08:33:25 ... my preference of screen elements with the ability to turn off 08:33:39 ack next 08:33:40 jdescottes, you wanted to react to jdescottes 08:34:41 jdescottes: I don't think that it will be enough for all cases 08:34:51 ack next 08:35:28 s//e.g. scrollable non-root elements/ 08:36:04 RRSAgent: make minutes 08:36:05 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 08:36:12 whimboo: I wanted to add to jdescottes item is that we don't want to constantly scroll e..g. twitter/facebook 08:37:17 q+ 08:37:32 ... element interaction is going to need "scroll into viewport" so that we can move the viewport to be able to handle it 08:37:48 ... this feature is part of interaction commands 08:38:02 ... but not in actions as that assumes everything you need is already in the viewport 08:38:13 ack next 08:38:41 q+ 08:38:50 jgraham: irrespective of the screenshot command there should be a top level command for scroll into view 08:39:53 ... and to whimboo 's point there is going to be a usecase to be able to scroll the element. I do think we should have a top level "scroll into view" 08:39:56 that makes sense to me 08:40:02 ack next 08:40:29 shs96c: I 2nd adding a command to scroll the element 08:40:37 ... and typing de de de is hard to type 08:40:52 q? 08:41:11 s/command to scroll the element/ command to scroll the element in an action chain 08:43:07 Topic: Ability to upload files and fill out file inputs 08:43:16 q+ 08:43:22 github: https://github.com/w3c/webdriver-bidi/issues/494 08:43:47 ack next 08:44:05 orkon: We started working on this feature. THere are some open topics on this 08:44:25 ... context: we tried to implement a method to set the file to the dialog 08:44:35 q+ 08:44:36 ... and we need to get the events with this 08:45:31 ...q1: is the interception of the dialog should be doable through the current mechanisms. Are people ok with this? 08:45:31 ack next 08:46:14 https://github.com/w3c/webdriver-bidi/pull/514 08:46:51 shs96c: Not all UIs show the dialog. There might not be able to get the file upload. For the local case this is really easy to do 08:47:09 q+ 08:47:22 ... for remote the clients are going to need to be able to send the file across intermediary nodes 08:47:37 q+ 08:47:43 ... for the UIs doing text boxes they assume the file exists on the local file system 08:47:57 ... but I think the remote case needs to be handled. 08:48:01 ack next 08:48:38 ... for selenium people hate the sendkeys that doesn't upload the file if it's just a text box 08:49:06 orkon: should we intercept the dialog and be part of the event subscription 08:50:24 shs96c: For the remote case we take the file, upload it, get the new file address and they type the new file path is done part of the sendkeys command 08:50:51 ... if set file input had the file name and file contents as the payload it would solve this problem 08:51:21 ack next 08:51:45 jgraham: for set files I think it would be fine to bypass dialogs 08:52:10 q+ 08:52:32 ... if the dialog blocks the browser there should be a way to probably send that out but it might not be cancellable. 08:52:52 q+ 08:53:07 the file dialog is a native dialog from the OS and we cannot handle that in Firefox 08:53:11 ... we could have an event for "a file dialog has appeared, please send files or cancel" so we don't block the UI 08:53:17 q- 08:53:54 q+ 08:54:38 ack next 08:55:38 orkon: we envisioned the workflow that the person would intercept the dialog and then set the file path in the dialog 08:55:47 ... and then people could choose what to do next 08:56:11 ... we suppress the dialog from appearing on screen 08:58:02 ack next 08:58:28 shs96c: in selenium the uploads can be dependent on the UA as it can block the browser 08:59:33 ... we were block the dialog from loading. 08:59:42 ... and this didn't work in Firefox 08:59:48 q+ 09:00:01 ack next 09:01:08 orkon: this is why we want to discuss it. We want to intercept it. We can stop here and then I will come back with an example. 09:02:45 shs96c: 09:04:39 In that case, being able to block the dialogue from opening would be wonderful 09:04:55 jamesn has joined #webdriver 09:05:06 ScribeNick: jgraham 09:05:06 jcraig has joined #webdriver 09:05:10 present+ 09:05:10 present+ 09:05:21 lola_ has joined #webdriver 09:05:42 RRSAgent: make minutes 09:05:43 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 09:05:53 Topic: AOM Accessibility testing 09:06:30 spectranaut_ has joined #webdriver 09:06:53 https://www.icloud.com/keynote/0eciRqzy6aGWyffs7OXZbkz8w#AccessibilityAutomation_2023SeptTPAC 09:07:10 Slides: https://www.icloud.com/keynote/0eciRqzy6aGWyffs7OXZbkz8w#AccessibilityAutomation_2023SeptTPAC 09:07:49 Matt_King has joined #webdriver 09:08:11 present+ 09:08:27 [slide 1] 09:08:48 [slide 2] 09:10:33 jcraig (IRC): a11y engine is part of web rendering engine. That will provide information to a11y API. In the context of automation there is platform-specific automation. AT-driver will be later today. Some existing solutions here with DOM as source of truth. 09:10:33 [slide 6] 09:11:02 jcraig (IRC): a11y tests added as part of wpt and in Interop. Computed Role and Computed Label already in the spec 09:11:12 [slide 10] 09:11:37 jcraig (IRC): Have basic a11y tests running in all four engines. Currently 600 tests 09:11:44 [slide 12] 09:11:58 [slide 16] 09:12:50 jcraig (IRC): We can check for computed role and computed label for any element. There are 54 elements and attributes that affect a11y. We can currently test 3 of these. Still lots more we'd like to test. 09:12:54 [slide 17] 09:13:56 jcraig (IRC): Want to test conflicts e.g. required vs aria-required. Would like to trigger a11y actions / events. Stack is different to other kinds of events e.g. pointer click. This is not quite the same "actions" as in wpt. 09:14:13 [slide 18] 09:14:39 q+ 09:16:10 jcraig (IRC): As changes happen to DOM they change a11y tree and then causes events in the accessibility system. Concept of a11y tree walker. Currently lots of implemenation differences in those trees. Easy example is div with overflow:auto. Scroll view that creates will be represented differently between different engines. But we want to test what we can with a11y tree even if it's not fully interoperable. orkon wanted something similar for a 09:16:10 CDP feaure 09:16:21 [slide 19] 09:16:53 https://github.com/WICG/aom/issues/197 09:17:04 https://github.com/WICG/aom/issues/203 09:19:25 jcraig (IRC): Two AOM issues. Stakeholders agree on the goals in those issues. Test-only web api for a11y feature. DOM-exposed API would over-complicate things. Need a way to get an a11y object and its atributes. Can currently get two attributes associated with real elements. Need to reconcile a11y tree elements with DOM tree elements, because the relationship between the trees isn't quite 1:1. Want to synthesize screen reader inputs. 09:19:38 [slide 20] 09:19:40 [slide 21] 09:22:19 jcraig (IRC): Don't need writable a11y nodes. Don't need a live tree representation. Don't need a11y node ids to persist after the DOM changes. Node can be destroyed and recreated if DOM elements are e.g. hidden and redisplayed. Trees aren't expected to be identical between browsers. Platform specific a11y APIs aren't in scope, neither is a11y tooling itself. 09:22:23 [slide 23] 09:22:49 jcraig (IRC): [Clarifies which bits are in scope] 09:22:58 RRSAgent: make minutes 09:23:00 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 09:24:37 jcraig (IRC): Been shopping this around. There seems to be general feeling this might be a good webdriver extension. 09:24:40 [slide 24] 09:25:34 jcraig (IRC): Want a way to get the accessibility node from a specific element. Might want to get just an id or get all the properties in a single call. 09:25:43 [slide 25] 09:26:12 jcraig (IRC): Need to be able to get a11y node by its own id, so that we can walk the a11y tree. 09:26:20 [slide 26] 09:26:48 jcraig (IRC): This is an example of what the properties of an a11y node might look like. 09:27:57 jcraig (IRC): Reason for property bag rather than individual accesors is that it reduces the number of requests required per element. 09:28:07 [slide 27] 09:29:17 jcraig (IRC): Synthesize event. Events are not quite the same as the non-a11y events, they can also affect the a11y tooling in a way that other events don't. 09:29:29 [slide 28] 09:30:01 jcraig (IRC): ARIA actions aren't like WebDriver actions. 09:30:12 [slide 30] 09:32:20 jcraig (IRC): Might be a problem with ids being reused across different sessions, but session id might be enough to disambiguate. Can probably do the property bag quite quickly even if the id portion comes later. 09:32:49 q+ 09:32:59 jcraig (IRC): Inert hides things, want to test that works. Might be differences with some implementations marking nodes as hidden and some removing them from the tree. 09:33:10 q? 09:33:20 Jem has joined #webdriver 09:33:28 present+ 09:33:41 present+ 09:33:58 ack next 09:34:33 orkon: You mentioned something about subscribing to events. BiDi seems like it's better for that . Could you use BiDi? 09:35:13 q? 09:35:13 jcraig (IRC): We don't think there's a problem with taking these concepts and implementing them in BiDi. 09:35:21 mattreynolds has joined #webdriver 09:35:30 jcraig (IRC): But we don't know about BiDi shipping schedule. 09:35:32 q+ 09:35:34 q+ 09:35:46 jcraig (IRC): Could put this on the BiDi roadmap. 09:35:53 q? 09:35:57 ack next 09:37:52 jgraham: Seems like the design would work well in BiDi, not just for events but also because the tree properties match the way we do DOM in BiDi. 09:38:15 jcraig (IRC): Could maybe do a subset in classic today and then add other stuff to BiDi long-term 09:38:51 shs96c: Events are hard to do in classic. 09:39:52 jcraig (IRC): We could send events to the page? 09:40:30 shs96c: Yes. We're also talking about how to reformulate classic in terms of BiDi so we expect it to be a superset 09:40:30 ack next 09:41:03 q+ 09:41:03 orkon: Should this be an extension or a core part of the spec? In BiDi it seems like it could be a core part of the spec. 09:41:03 jcraig (IRC): What do you see as pros/cons of extension vs not 09:41:03 q+ 09:41:36 orkon: Don't think this should be an optional thing. 09:41:36 q+ 09:42:01 orkon: We have use cases in puppeteer. We want treewalker to get a11y tree snapshot. We want to query a11y tree e.g. finding nodes that have certain properties. 09:42:05 ack next 09:42:41 q- 09:43:47 AutomatedTester: I'm with orkon on making this a core webdriver feature. In testing space people are starting to look at doing a lot more accessibility testing. WebDriver should take on the hard parts. This could simplify a lot. 09:45:34 jcraig (IRC): One of the reasons for suggesting an extension is that it would allow clear delineation of responsibilities. People in ARIA group would be willing to work on this. We're happy to take in whichever direction you want. Don't want to make unreasonable requests. 09:45:34 AutomatedTester: I think this is important and so should be in core. 09:46:21 q+ 09:46:22 jcraig (IRC): One complication might be that we'd really like to test parent child relationships, but right now they aren't the same between browsers. Is that OK? 09:47:17 ack next 09:47:32 jgraham: where this lives doesn't really affect wether it is required to implement. The issue is more to do with the ownership of doing the work 09:48:12 ... I think it being in a different spec this might make sense 09:49:11 ... as for trees that could be very different between browsers scares me but doesn't mean I think we shouldnt do it 09:49:11 q+ 09:49:11 maybe we should do: find accessibility child of role x 09:49:11 ... I think we should be worried that people will assume the way a specific browser works doesn't means to users 09:49:20 I think that would be the same across browsers...? 09:49:26 ... e.g. Browser A returns a specific way and then other browsers are "not accessible" 09:49:31 qq+ to respond to jgraham 09:50:01 I wonder whether we heard about ideas about James Craig's question regarding parenet - children relationship 09:50:10 ... there are enough legitimate use cases here to do it 09:50:11 ack next 09:50:14 jcraig, you wanted to react to jgraham to respond to jgraham 09:50:15 q+ to say maybe we should do "get accessible child of role x" which should mostly be the same across browsers, with some exceptions 09:50:34 jcraig (IRC): from Google is trying to make this the same 09:50:50 ... there is still utility in being able to access the actual tree 09:51:07 ... I think we can still move forward on what we have here 09:51:14 jcraig (IRC): There's a concept of a normalised tree which would align with ARIA's definition of a11y parent and child. There's some benefits of getting the underlying tree to help align implementations. 09:51:50 jgraham: a good analogy here is that we don't expose the layout tree between browsers 09:52:04 ... we need to be wary of what can be returned 09:52:31 s//Aaron Leventhal/ 09:52:34 ... and we need to explain that these should be behind flags with the explainer that things will be different between browsers 09:52:40 q? 09:52:42 ack next 09:52:48 jcraig (IRC): Having the implementation tree accessors behind a flag seems reasonable. 09:52:50 q? 09:54:12 q+ 09:54:34 shs96c: As long as you can express the same concepts in the tree between browsers, that seems find. Could also base tree walking on find element-like API rather than walking the tree, so you'd skip over things that are different between implementations. 09:54:44 q? 09:55:16 ack next 09:55:49 Stewart 09:55:49 orkon: There's also a discussion about find element, and there's a proposal to make those work with role, so that might affect the extensions question. 09:55:49 ack next 09:55:49 spectranaut_, you wanted to say maybe we should do "get accessible child of role x" which should mostly be the same across browsers, with some exceptions 09:56:25 ack next 09:56:26 spectranaut_ (IRC): I was going to recommend a similar solution "get accessible child with role " 09:57:04 q+ 09:57:41 Jim Evans: I wanted to point out that in BiDi spec there's prior art for serializing children of DOM nodes and get a tree in that way up to a certain maximum depth, which might also work for the a11y tree, 09:57:44 s/,/./ 09:57:48 ack next 09:58:32 q? 09:58:36 [clarification that "prior art" is not meant in a legal sense] 10:14:48 Matt_King has joined #webdriver 10:20:25 Matt_King has left #webdriver 10:26:53 RRSAgent: make minutes 10:26:54 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 10:29:09 patrickbrosset has joined #webdriver 10:29:21 Topic: Ability to upload files and fill out file inputs (contd) 10:29:38 github: https://github.com/w3c/webdriver-bidi/issues/494 10:29:59 ScribeNick: AutomatedTester 10:30:43 wfilpek has joined #webdriver 10:30:43 q+ 10:31:04 ack next 10:31:50 orkon: We have a use case that a dialog would be shown to a user. We would like to have an event that shows that a dialog would appear. We would surpress the the dialog from loading 10:32:23 ... we would then notify the user so they can then decide to dismiss the dialog or complete the form 10:32:46 ... we also want to have people to automatically handle the dialog if people aren't expecting it 10:33:20 ... the interception of the dialog would be happen if the person subscribes to the events 10:33:31 q? 10:33:46 q+ 10:33:47 https://html.spec.whatwg.org/#show-the-picker,-if-applicable 10:34:19 ack next 10:34:20 jgraham: I have found the relevant part of the html spec for this 10:34:40 ... we would effectively override steps 2 and 3 10:35:15 ... there is some interesting edge case here whether the element fets the cancel event 10:35:54 ... and if you didn't respond that's a case that wont happen with a real dialog 10:37:08 q+ 10:37:08 ... I think if you are not subscribed to the events that we should cancel the dialog automatically 10:38:10 ... the worst case is that we get the dialog and can't handle this 10:38:34 orkon: we have the same situation in alerts and we should handle in the same way 10:39:07 jgraham: yes, we need to be able to handle this. currenetly people need to subscribe and handle the alerts as they appear but we should probably go back and check the spec in bidi here 10:39:56 jgraham: we should sort this with alerts 10:39:56 shs96c: we should do what classic does here 10:41:01 jgraham: we should raise an issue here and get it sorted 10:41:01 q+ 10:41:01 ack next 10:41:01 orkon: there could be cases for hybrid automation 10:41:01 ... we should automatically throw errors here 10:41:34 ACTION: file an issue on how to handle alerts if there aren't any subscribers to the events 10:41:41 q+ 10:41:41 ack next 10:41:59 jgraham: the hybrid case is important here 10:42:25 ... 10:43:38 ... and it not working in Safari is something we need to be aware of. We should probably do what shs96c said and follow the capability 10:43:38 q? 10:45:32 Topic: Add support for FindElement(s) commands from WebDriver classic 10:45:53 github: https://github.com/w3c/webdriver-bidi/issues/150 10:46:27 q+ 10:46:39 q+ 10:46:59 ack next 10:47:34 Jim Evans: in the github issue. In the comment I wrote is a strawman proposal for how we can do it 10:49:00 ... there are some locator strategies that won't be able to be done via the javascript execution like the a11y discussion earlier 10:49:15 Agenda: https://www.w3.org/wiki/WebDriver/2023-TPAC#Agenda 10:49:36 ... having the findElement command also helps with not web platform implementations of webdriver (appium et al) 10:49:36 q+ 10:50:26 ... I think it is important that we do this. I know in puppeteer they move things down to css or psuedo css selectors 10:50:32 q+ 10:50:54 ... I would like to be able to do things without having to rely on JavaScript to make this happen 10:51:13 ack next 10:52:04 orkon: I wanted to comment on the proposal. We are in favour in having this command but we have some concerns 10:52:17 ... e.g. how do combine commands for finding elements 10:52:33 q+ to note that the scope of the proposal is far larger than we have in classic 10:52:44 q+ 10:53:24 ... we need to discuss the details. Also allow people to return an iterator etc and shadow roots 10:53:58 ack next 10:54:18 littledan: We in bloomberg we have a UI testing tool using a custom protocol 10:54:34 ... the bloomberg terminal is based off chromium 10:54:54 ... we have been using a CDP interface on top of that 10:55:35 ... this is done via commands on the domain instead of JS 10:55:44 ... we are in favour of a find element command 10:55:51 JuhaVainio has left #webdriver 10:56:05 ... and if we get this in then we can see about adopting this quicker 10:56:05 ack next 10:56:18 ... its very similar to the appium use case 10:57:16 shs96c: from the selenium point of view, this is very crucial here 10:57:19 I also wanted to mention: We don't have any particular concerns about CSS selectors--we actually already implement a CSS selector system for querying the UI 10:58:13 ... we also need findElements but with the ability to limit the amount of elements returned 10:58:13 ... the ability to handle compound selectors would be very useful 10:58:47 ... from Jim Evans proposal we can do some really useful ideas looks really nice and I support it 10:58:50 q? 10:58:59 ack next 10:59:00 jgraham, you wanted to note that the scope of the proposal is far larger than we have in classic 10:59:39 jgraham: looking at this comment I would want to start making this map onto classic 10:59:57 ... as this proposal is larger than classic 11:00:26 q+ 11:00:45 ... the easiest approach is using a single locator and then making sure they map across to classic and then new items be a separate discussion e.g. shadowroot 11:02:52 ... we need to make sure we work for the classic use cases and then move onto the longer discussion on compound as they can, not elegantly, be handled in the client at the moment 11:02:52 ack next 11:03:57 Jim Evans: one of the reasons for this proposal from puppeteer and looking at playwright notion of what a locator looks like and being able to chain locators 11:04:18 ... the next reason for the complexity was to also minimise the amount of round trips 11:04:48 ... unlike cdp based tools we have to be able to handle internet latency 11:05:01 ... and minimising the round trips 11:05:08 q+ 11:05:41 q+ 11:05:50 ... I haven't been through all the edge cases but the command is definitely important 11:06:02 q+ 11:06:42 zakim, close the queue 11:06:42 ok, jgraham, the speaker queue is closed 11:06:57 ack next 11:07:36 shs96c: implement things to get classic to work on bidi and I suggest that we get the text to move to innerText whch could be a breaking change 11:07:44 +1 to that. 11:08:05 ... clients could potentially solve that via javascript to make sure that we dont break backwards compat 11:08:10 ... and we need a JS locator 11:08:14 ack next 11:08:46 sadym: Another scenario we want to want for an element to wait for it to appear/disappear 11:09:05 ... this is why it's in JS at the moment so that it can wait for elements to reach a state required 11:09:20 ... do we want this to happen too? 11:09:36 shs96c: I think that is out of scope for right now and we should deal with it in a separate issue 11:10:11 jgraham: people could poll or create a mutation observer 11:11:08 shs96c: classic just says "it's here" or not where puppeteer/playwright can wait for a page load and an element loads 11:11:22 whimboo: classic does have implicit waiting 11:11:28 ack next 11:12:10 jgraham: I agree the compound locators have real uses but we should focus on find element so we can get quickly get consensus 11:12:50 ... i'm worried about adhoc compounding of commands will not work well across the whole spec even though they make sense on their own 11:12:59 ack next 11:13:22 an example of p-selectors (inspired by CSS extensions and deep selectors proposals) combining various strategy (css + text + aria + xpath + custom locator with light and shadow dom descendants): 11:13:22 `div.my-cls ::-p-text(Test) >>> ::-p-aria(MyButton) >>>> ::-p-xpath(//div) >>> ::-p-vue(MyComponent)` 11:13:48 orkon: I just wanted to point an out an example using the p selectors from puppeteer 11:14:11 q? 12:19:30 zakim, open the queue 12:19:30 ok, AutomatedTester, the speaker queue is open 12:22:41 Topic: Ability to upload files and fill out file inputs 12:22:48 q+ 12:22:56 github: https://github.com/w3c/webdriver-bidi/issues/494 12:23:03 mattreynolds has joined #webdriver 12:25:05 1. Interception enabled by the event subscription to the input.fileDialogIntercepted event.... (full message at ) 12:25:22 ack next 12:25:29 this is the consensus 12:25:37 lola_ has joined #webdriver 12:27:17 RRSAgent: Make minutes 12:27:18 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 12:28:23 Topic: Session History 12:31:37 github: https://github.com/w3c/webdriver-bidi/issues/502 12:33:21 jgraham: There are 2 questions here. Currently with navigation events we have an event when fragment is navigated but not when there is popstate 12:34:20 ... we could create an event when navigating the history even if it doesn't change url 12:34:51 Classic has https://w3c.github.io/webdriver/#back 12:35:43 q+ 12:35:43 ... do we want to be more in line with the navigation API or ...? 12:35:43 ack next 12:35:46 q+ 12:36:08 shs96c: do we know why puppeteer exposed this in the first place? Was this because its a devtools protocol or was it a conscious decision? 12:36:18 ack next 12:38:10 orkon: it would be better to follow the fragment events and happy to add a new event. For the history of puppeteer we allow people to move back/forward. but we wanted to expose the everything for us to get a larger and more flexible use cases 12:38:42 shs96c: this is why I was wondering how widely used it is? 12:39:00 https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API is the Web Navigation API 12:39:21 orkon: there is a puppeteer use case that allows people 12:39:59 shs96c: forward and back is the most important but getting the complete history is lower priority 12:40:28 orkon: it's definitely harder expose all history across all UA 12:40:41 s/orkon/jgraham 12:40:43 @AutomatedTester: We also need a mechanism to get the current URL 12:41:33 jgraham: The web also has the navigation API (shared) 12:42:20 s//We also need a mechanism to get the current URL 12:42:44 orkon: you can also inspect history and then decide what to do based on it's content 12:44:06 jgraham: So we need to make sure that we have back/forward. There is support for event when there is a navigate happens 12:44:38 ... and exposing session is what people would like but more advanced used cases are lower priority 12:44:44 agreed 12:45:06 q? 12:48:15 Topic: Final decision if browsingContext module should be renamed or not 12:48:15 github: https://github.com/w3c/webdriver-bidi/issues/91 12:48:39 jgraham: A while we discussed that the browsing context doesn't match what the html spec has 12:48:55 q+ 12:49:14 q+ 12:49:14 ... I think we are reaching a point that renaming it is going to start annoying people 12:49:50 ... and in spec land people might notice but not care 12:50:04 ... so we can see about leaving it and just going through the spec and make sure that everything is documented properly 12:50:14 ack next 12:50:55 shs96c: I would advocate that make sure the name is correct rather than telling people in the spec that the term is correct 12:51:13 ... I think we should be thinking that the spec will be around for years 12:51:27 ... so we have the opportunity so we should take it 12:51:31 ack next 12:52:06 orkon: is browsing context still used in the html spec? Has it been replaced by navigable? 12:52:21 jgraham: a document still has a browsing context in some circumstances 12:52:44 ... there are cases when the routing can change things 12:53:03 ... navigable is conceptually the tab/iframe 12:53:30 orkon: There is a discussion item later about prerendering 12:54:04 ... so if we keep browsing context in there . If we don't change it how will it be with that? 12:54:23 jgraham: I would surprised if they have multiple browsing contexts 12:55:10 ... I think navigable can only have 1 session history entry 12:55:10 s/a11y engine is part of web rendering engine/each web rendering engine maintains an internal model of accessibility before it exposes it to the platform-specific accessibility APIs/ 12:55:10 ... and 1 active document 12:55:45 orkon: on our side we would like to prefer not to rename things due to the amount of work 12:56:07 ... but for future ambiguity then perhaps we should probably fix it 12:56:32 ... I think it's constrained on the spec work 12:56:54 s/In the context of automation there is platform-specific automation. AT-driver will be later today. /In separate contexts, there is platform-specific automation and AT automation. Lola and Matt's AT-Driver session will be later this afternoon. Not directly related to this request. / 12:58:00 jgraham: 12:58:10 s/Some existing solutions here with DOM as source of truth./Some other existing "client-side automation" solutions (like Deque's Axe-Core) treat the DOM as source of accessibility truth./ 12:59:54 ... we would need to see if we can find someone that do the spec work and then coordinating the amount of work that is also doing the tests 12:59:56 s/Want to test conflicts e.g. required vs aria-required. /In addition to the 50+ other aria attributes, we want to test conflicts with host language attributes... e.g. required vs aria-required on the same element. / 13:00:05 ... we can't defer this any longer 13:01:42 ... the amount of work on this part of thinks this is not worth it and we might have html churn things again the future 13:01:46 s/Stakeholders agree on the goals in those issues. /I think all the stakeholders involved in 197 agree on the following goals. / 13:02:00 ... but we need to make sure that navigable is documented properly 13:02:12 agreed not to rename 13:02:27 shs96c: I suggest leaving things as is and adding action on documenting navigable properly 13:03:02 ACTION: documenting navigable properly in the spec with browsing context 13:03:11 Matt_King has joined #webdriver 13:03:57 present+ 13:04:01 s/neither is a11y tooling itself./neither is assistive technology (AT, e.g screen readers) automation itself. (Caveat: Driving AT is obvs in scope for separate issue: AT Driver)/ 13:05:48 Topic: AT-Driver 13:07:01 slides: https://docs.google.com/presentation/d/1dgjLt7HdenkvNpI6UBoS6BWYvC16L4qnbDnZ1pH4Nnw/edit?usp=sharing 13:07:09 Lola: We have presented AT driver in the past 13:07:36 howard-e has joined #webdriver 13:07:36 ... and we are being part this working group 13:07:58 ... AT Driver is a protocol for doing automation of assistive technology 13:08:57 .. the main people behind this are Lola Mike P. and the ARIA group 13:09:58 ... {talks about slide 5]. We have some implementations and interested groups 13:10:07 ... we have issues that have come up, e.g. Sec issue around keyboards 13:10:34 ... what do we need to promote this to a working draft 13:10:39 q+ 13:10:42 q? 13:11:02 ack me 13:11:02 ack next 13:11:26 q+ 13:11:39 jcraig (IRC): thanks for handling the fundamental issue around security 13:11:56 ... I think the utility of this project is great 13:12:09 ... and if we can make it work in an interoperable way it will be amazing 13:12:45 ... Apple does have a way for automating voice over 13:12:53 ... and there are unsupported paths in this case 13:13:25 q+ 13:14:09 jugglinmike has joined #webdriver 13:14:10 ... beyond supported and unspported ways there is no plans to support this on the roadmap at the moment. there are higher priorities 13:14:33 ... I have fundamental concern around security and design 13:14:56 ... the security is that we simulate the hit press 13:15:20 ... which then goes to the screenreader which gives us full access to the machine 13:15:45 .... from the design level we could see about see about changing things 13:16:39 q? 13:16:49 ... we need to have a better way enumerate on things rather than having the tests needing to figure out what to do 13:16:50 q+ 13:16:55 present+ jugglinmike 13:16:57 ack next 13:17:15 orkon: is there a demo how it work and what it looks like? 13:18:15 jugglinmike (IRC): We are building out the infra on this and show the harness 13:18:54 ... the tests are written in aria-at and then runs them 13:19:08 ack next 13:19:55 https://github.com/w3c/aria-at-automation-harness/ 13:22:53 automatedtester: we need to make sure that we follow the process and thats a question to sideshowbarker . While we solve the design issues and sec issues as an editors draft for now 13:23:23 sideshowbarker: the WG is out of charter and we would need to make sure that follow the process and get it all documented properly 13:23:30 q+ 13:24:05 ... we can't just have an open ended wg and deliver what we want 13:25:39 q+ 13:25:39 ack next 13:25:39 The aria-at CG should be able to modify the current draft to address security and design concerns before the new charter is in place. 13:26:13 shs96c: there are 2 things. I looked at the interactions. There are no targets where interactions should happen 13:27:16 ... from selenium people want to use their machine and hate having focus stolen. I think having a target would solve that 13:27:29 ... and a comment... writing tests with IME in the old selenium was really painful. This is why in webdriver we have code paths for specific characters 13:27:40 ... and we need to make sure that intent is handled in the commands 13:27:56 lola_: do you have an example? 13:28:52 shs96c: The concept of handling an alert can be different between a braille reader and other places but the intent shows that people just want an alert handled 13:29:24 q+ to mention prior feedback, target, and the a possible braille misunderstanding" 13:29:24 Matt_King (IRC): This sounds a lot like what jcraig (IRC) is asking for 13:29:31 ack next 13:29:31 jcraig, you wanted to mention prior feedback, target, and the a possible braille misunderstanding" 13:30:58 jcraig (IRC): I want to make sure this spec is a success. The utility of the project is great but if get to that point the WD without things being fixed I will have to do a formal objection 13:31:04 .... as for targets then we need to potentially have multuple targets 13:31:44 ... the target proposals is a really good one 13:32:06 ... there was an item on a slide about braille 13:32:44 ... screenreaders are not tied to a specific output 13:33:00 ... and their input to the device can be different 13:33:03 q? 13:33:08 q? 13:33:10 q+ 13:33:11 ack next 13:33:35 jugglinmike (IRC): there are some assumptions that we have made 13:33:51 ... the info being conveyed is appropriate for a screenreader 13:33:58 q+ 13:34:07 ... where the braille it would be more passive 13:34:40 ... e.g. what was the last thing did you vocalise 13:35:18 qq+ jgraham 13:35:48 jcraig: we can have something like a aria-braillelabel and return a string 13:35:55 ack next 13:35:56 q+ 13:35:56 jgraham, you wanted to react to jgraham 13:37:13 jgraham: I think this does sound useful. THis WG has been always been very specific group for browsers 13:37:19 s/we can have something like a aria-braillelabel and return a string/i'd see this as another accessor on the screen reader... (last spoken phrase, or current braille buffer... identical in most cases) .... that'd be a way to test aria-braillelabel for example/ 13:37:48 ... other than webdriver-bidi there doesn't feel like there a a lot of overlap 13:38:56 AutomatedTester: BTT is about tools that facilitate the ability to do testing 13:39:08 AutomatedTester: historically, BTT has meant "WebDriver" 13:39:23 AutomatedTester: The charter was initially to do WebDriver and developer tools 13:39:33 AutomatedTester: There's definitely overlap in that regard 13:40:12 AutomatedTester: If it doesn't have a reasonable home with people who understand the testing side of it, then it risks "falling between the cracks" of the various folks who have expertise with some part of it 13:40:17 q? 13:40:31 ack next 13:41:20 Matt_King (IRC): the knowledge in this group is essential to AT-Driver being a success 13:41:33 ... I don't think any other group would give us this feedback 13:41:51 ... our user base is hopefully going to be the same as those who are webdriver users 13:42:47 q? 13:42:52 ack next 13:43:08 qq+ shs96c 13:44:00 Matt_King (IRC): to your point of targets we see the browser as the target 13:44:53 ... 13:45:43 ... what do we mean by target? 13:46:09 jcraig (IRC): this is about making sure we pointing at the correct target since we are outside the process 13:46:44 ... this might be solved in the implementation? Or is this showing the security issue? 13:47:12 Matt_King (IRC): do we send everything through the screenreader 13:47:18 jugglinmike (IRC): not sure 13:48:18 ... I don't have a lot of knowledge there so would need to look into it 13:48:29 q+ to mention install base differences between VO and other screen readers... much larger target for VO and Narrator than NVDA and JAWS 13:50:29 jcraig (IRC): we allow any command through then there is a security issue since we could run apple script or change app 13:51:05 ... and can get it do internal things to the OS 13:51:05 ack next 13:51:05 shs96c, you wanted to react to shs96c 13:52:11 shs96c: it would nice if AT Driver and WebDriver can interact together 13:52:11 ... e.g. find element in one and pass to the other 13:52:35 ... re: targeting it flags the window that is being automated 13:53:12 .... Firefox says that it is under control and so does chrome. Safari has the "glass" 13:53:46 ... and having a target prevents leaking from other windows 13:53:54 ... and if we don't get this right it could negatively impact the rest of things we care about 13:53:58 q? 13:54:44 ... and finally there are some parallels AT Device and webdriver. E.g. Last APP is like getting the url of a website 13:54:55 ... and then actions against a A11y tree 13:55:56 jcraig: 13:56:21 jcraig (IRC): in previous meetings we didn't want to just read but be able to "write" to things 13:57:09 shs96c: Sending keys and hoping it goes the right place is likely going to go to the wrong place 13:57:24 ... where a "what was the last thing spoke" it is less likely to leak info 13:58:12 Matt_King (IRC): we would get webdriver to create the item that is spoken 13:58:40 mzgoddard has joined #webdriver 13:58:40 ... e.g. webdriver doesnt always have focus where assistive tech needs the focus 13:59:07 s/ / I thought I recalled you wanted to "write" some AT prefs, like changing VO into "quick nav" or verbosity settings / 13:59:16 Matt_King (IRC): 14:00:14 jgraham: this is anagolous to writing automation at a OS level. 14:00:48 ... and there is a lot of issues around scope and sandbox 14:00:53 q? 14:01:29 jcraig (IRC): I will speak in defense. I do think it is possible to do this if we address the sec concerns 14:02:34 ... there is potential get from one browser and copy it to another 14:03:05 q? 14:03:29 ack me 14:03:29 jcraig, you wanted to mention install base differences between VO and other screen readers... much larger target for VO and Narrator than NVDA and JAWS 14:03:39 ... and think my concerns are likely to be the same as narrative teams 14:04:02 q? 14:04:08 Matt_King (IRC): there are some ways fundamentally different 14:04:41 s/there is potential get from one browser and copy it to another/as proposed, there is potential control AT from one browser and use it to control another app on the system/ 14:04:54 ... the tests could be platform specific 14:06:10 ... we are reducing the work that is needed to write a test 14:06:27 q? 14:07:30 shs96c: we have capabilities to reduce the OS level things into start up 14:07:30 ack next 14:08:10 jugglinmike (IRC): most recently to discussing sandbox/target. This speaks to the wider scope of AT Driver 14:08:27 ... my conception is to do what the user can do like what webdriver can do 14:09:35 ... and in webdriver people are limited to the browser 14:10:13 ... wouldnt it be good to discuss AT driver to drive anything that has an a11y tree 14:11:01 Matt_King (IRC): where we are now in terms of having an AT Driver protocol 14:11:22 ... that can only have access to the browser for now is the right way to go 14:11:31 ... it won't limit it in the future 14:12:19 q? 14:12:46 q+ 14:13:30 ack next 14:14:30 q+ to volunteer to review the list of actions 14:16:19 jugglinmike (IRC): my concern that trying to standardise things that people concerned that things are too limiting? 14:16:47 ... and there are potential issues around key codes between OSs 14:17:12 q+ 14:17:58 ... and we can make the items that simplifies things for users 14:17:58 q+ Matt_King 14:18:09 ... and I don't have a specific quesition 14:18:16 ack me 14:18:16 jcraig, you wanted to volunteer to review the list of actions 14:18:26 ack shs96c 14:20:07 q? 14:20:07 jcraig (IRC): I voluteer to review things 14:20:07 s/review things/review that list of enumerated commands/ 14:20:14 shs96c: yes standards bodies are less nimble but its worth it 14:20:15 ... getting something started is hard but getting incremental improvements are faster 14:20:58 ... and we started small and built it out 14:21:53 ... we can't solve all the use cases at first 14:21:54 q? 14:22:05 ack matt 14:22:09 Matt_King (IRC): I understand your concerns jugglinmike (IRC) and share some of them 14:23:15 ... we can build out something that will be easier to scrutinize 14:51:00 RRSAgent: make minutes 14:51:02 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html whimboo 14:58:28 Jem has joined #webdriver 14:58:28 mathiasbynens has joined #webdriver 14:58:28 sadym has joined #webdriver 14:58:37 scheib has joined #webdriver 14:58:44 foolip has joined #webdriver 14:58:53 cb has joined #webdriver 14:58:54 rakuco has joined #webdriver 14:59:03 mattl has joined #webdriver 14:59:04 JohnJansen has joined #webdriver 14:59:19 spectranaut_ has joined #webdriver 15:00:40 Suppose I execute `script.callFunction` with `() => document.querySelector("iframe")`. I get back a serialized NodeRemoteValue. How do I get the `BrowsingContext` and subsequently the document hosted within that iframe? 15:01:02 * the `BrowsingContext` of the frame and subsequently 15:01:45 JimEvans: You need `iframe.contentWindow` 15:02:01 jgraham: Which should give a `WindowProxyRemoteValue` 15:02:28 jgraham: Brilliant. That's what I was missing. 15:02:30 JimEvans: and that latter has the browsing context, but not implemented in firefox yet 15:05:20 Matt_King has joined #webdriver 15:06:27 scribe+ 15:06:47 ScribeNick: orkon 15:07:04 Topic: Extension commands 15:07:24 github: https://github.com/w3c/webdriver-bidi/issues/506 15:08:25 q? 15:09:50 shs96c: one of the things people want to do is to extend the specification in certain way. Later there is a discussion about WebUSB. Previously not all extensions were supported. So in WebDriver Classic we have a concept of extensions and then primarily take form of extensions command. If you are a vendor, your command begins with the well known prefix. 15:09:50 RRSAgent: make minutes 15:09:51 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 15:11:02 shs96c: in web driver bidi it might be more complicated, we might want to allow specifying complete modules. For example, cdp commands could be in a cdp module. 15:11:02 shs96c: another place we want to do it is extensions to existing modules. E.g., adding specific methods to the browsing context. And finally the a11y conversation we would like to have additional locator strategies. 15:12:06 shs96c: extensions for the spec that makes them different that they will be defined in another spec. E.g., webusb webdriver extensions will be in the web usb spec. 15:12:06 q? 15:12:06 q+ 15:12:06 ack orkon 15:12:06 lola_ has joined #webdriver 15:12:48 AlexRudenko: what is missing from the spec? 15:13:40 q+ 15:13:40 jgraham: so in bidi at the moment we talk about extensions commands but we don't have in specs what other specs can and cannot do 1) defining commands in existing modules 2) defining modules 15:14:21 jgraham: for example, if I am making a command, what is the style I should use? 15:14:21 jgraham: e.g., what string formatting does webdriver bidi use? 15:14:44 jgraham: it would else help us to have consistency 15:15:07 jgraham: another question for some places we need to add explicit extension points 15:15:37 jgraham: this is how the capability matching currently works when it delegates to the webdriver spec 15:15:59 jgraham: https://github.com/w3c/webdriver/issues/1701 15:16:18 q? 15:16:43 ack shs96c 15:17:10 q+ 15:17:31 shs96c: there is an argument that we need to add extensions to existing modules. For example, extending the new features in a namespace before moving to the spec 15:18:17 shs96c: the guideline could be if the module is defined in the webdriver bidi spec, send PR to the webdriver bidi spec? 15:19:20 jgraham: for vendor extensions it makes sense that they could be anywhere like parameters on existing commands. For the stuff coming from other specs, everything I saw so far can be a separate module. So it should be a preferred way for specs to do that. 15:20:02 jgraham: there is an interesting non spec discussion on what tooling we need to make it work 15:20:28 jgraham: with cddl documents we have no way of generating the cddl derived from another spec 15:20:36 q? 15:20:48 ack jgraham 15:21:26 jgraham: there is a general agreement about it 15:21:39 q+ 15:21:49 ack jfernandez 15:22:23 https://github.com/w3c/webdriver/issues/1725 15:22:27 * Topic: https://github.com/w3c/webdriver/issues/1725 15:22:28 jfernandez: regarding the syntax in extensions, there is a conflict between one that was created by Chrome. It is SPC Transaction Mode. 15:22:55 * github: https://github.com/w3c/webdriver/issues/1725 15:23:24 jfernandez: I added a new extension command in order to define that permissions should not be required enumeration (?) 15:23:51 q+ 15:24:24 jfernandez: there is a conflict in recommendations and there is no sense to have two different enumerations with difference formats 15:24:47 jfernandez: the extension we are implementing is not the spec so we can do whatever we want 15:25:06 jfernandez: the only important thing is that we have an agreement on the formart 15:25:14 q+ to add some background on how the casing used in webdriver came about. Happy to skip that if there's no interest 15:25:48 ack jgraham 15:25:48 jfernandez: what syntax do we want for enums? 15:25:48 q? 15:26:25 jfernandez: there is an agreement that it should camel case 15:26:37 jgraham: did an audit of what webdriver does 15:27:22 jgraham: in webdriver bidi we use camelCase for things that look like js code (further details https://github.com/w3c/webdriver/issues/1725#issuecomment-1545817156) 15:27:41 jgraham: we use lowercase in a bunch of places 15:28:07 jgraham: and there are cases where we taken format from JS 15:28:08 for refrerence, these are the casing rules defined in the W3C design principles 15:28:08 https://w3ctag.github.io/design-principles/#casing-rules 15:28:26 jgraham: proposal is that those value is camel case and we fix realm values 15:28:49 jgraham: what do people think about changing realm types? 15:29:04 jgraham: we could make bidi locator strategies match the new convention 15:29:19 jgraham: compared to lowercase camel case allows automatic conversion 15:29:48 q+ 15:29:50 jgraham: with lowercase it is more difficult 15:30:13 ack shs96c 15:30:13 shs96c, you wanted to add some background on how the casing used in webdriver came about. Happy to skip that if there's no interest 15:30:50 shs96c: originally webdriver was taken java objects and name conventions matched Java 15:31:01 shs96c: with the exception when we needed to use keys in a dictionary 15:31:20 shs96c: it was before the design guidelines existed 15:31:37 shs96c: for locator strategies we can change them as they are not speced 15:31:41 s/speced/spec'ed/ 15:32:06 shs96c: similarly for error codes we could change it. Jim and I will be most affected but managable. 15:32:30 q+ 15:32:31 shs96c: I see no potential problems following James' proposal 15:32:36 ack sadym (IRC) 15:32:48 q? 15:32:58 ack sadym 15:33:17 sadym (IRC): there are some clients that implemented parts of bidi selenium and webdriver. If we rename it, we should do it as early as possible 15:33:34 shs96c: for selenium it would not be much effort. Cannot speak for webdriver.io 15:34:24 shs96c: if it is the breaking change worth making for consistency, we can do it because it is still early in the spec and now is the time for changes like this 15:34:43 sadym (IRC): is selenium version ties to the browser version? 15:35:12 shs96c: there is a protocol converter that allows mapping enums 15:35:29 shs96c: similarly we also don't pass locator names unchanged 15:36:52 AlexRudenko: it is managable if it is not a difficult rename (only format changes). We could be breaking things for a while but we are not shipping it for the users so can afford it. 15:36:59 q+ 15:36:59 ack jgraham 15:37:25 jgraham: sounds like we have agreement on the first part that we need to adopt camel case 15:37:57 jgraham: changing chromium/firefox/tests sounds like a lot of work 15:38:20 jgraham: making breaking changes is painful and hard 15:38:42 jgraham: for the value types and the error types, we just say it is inconsistent for historical reasons 15:39:13 q+ 15:39:36 jgraham: in practice no one is probably affected by the format 15:40:06 jgraham: for the value types we can make an argument that it matches the constructor name conversion so that they match HTML and EcmaScript 15:40:19 jgraham: that makes us consistent with other spec 15:40:20 s/spec/specs/ 15:41:24 jgraham: hopefully no one in other specs introduces case sensitive identifies which would make us ambigious 15:41:43 ack Jim Evans 15:41:58 Jim Evans: for enumerated value it is not a big deal 15:42:21 Jim Evans: it is easy to map values in enums 15:42:35 * in enums (for me) 15:43:42 jgraham: what is the effort for renaming 15:43:44 q+ 15:44:36 ack next 15:44:44 ack sadym 15:45:08 sadym (IRC): serialzation from our side could be complicated to rename but it is doable 15:45:22 ack orkon 15:45:24 sadym (IRC): it is not a show stopper but if we have other arguments it can overweight 15:46:35 AlexRudenko: probably WPT and serialization is the most effort 15:46:45 q? 15:47:32 jgraham: we reached a half decision and can revisit tomorrow. Moving on to the next topic. 15:47:43 topic: Adding Permissions Automation to the Roadmap 15:47:53 github: https://github.com/w3c/webdriver-bidi/pull/523 15:48:53 present+ 15:49:01 RRSAgent: make minutes 15:49:03 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 15:49:31 mattreynolds (IRC): we have a webbluetooth api that has a chooser api for its permission UI 15:50:18 mattreynolds (IRC): we developed a webdriver api for testing but we need to communicate back the list of devices that comes from the chooser 15:50:29 mattreynolds (IRC): we are unable to bring the API into the webdriver classic so we are looking into an extension for the webbluetooth 15:50:40 * extension for bidi for the webbluetooth 15:50:59 mattreynolds (IRC): we are developing a proposal for the webdriver bidi extension. We eventually want to use for WPT 15:51:07 q? 15:51:28 mattreynolds (IRC): is there anything more to know about webdriver bidi for us? 15:51:38 q+ 15:51:49 mattreynolds (IRC): we have a pull request that adds permissions to the roadmap 15:52:15 ack shs96c 15:52:25 q+ 15:52:31 q+ 15:52:42 shs96c: an extension sounds good 15:52:52 q+ 15:53:15 mattreynolds (IRC): what is the best way to reach out? 15:53:15 q+ 15:53:18 ack next 15:53:23 shs96c: this wg, e.g., via matrix 15:54:23 orkon: I'm familiar with device access API. This is probably the first extension for BiDi. You should be able to reach out to me to bring questions to the wg 15:54:38 ack next 15:55:20 jgraham: I agree that it sounds like an extension. If I understand the model, it sounds right to have the event based model where the backend sends the choices and the client makes a choice based on the event. 15:55:42 jgraham: this is exactly the kind of flow I would imagine in BiDi. 15:56:05 mattreynolds (IRC): another kind of API is to bind/unbind to enable interception 15:56:29 jgraham: you need to subscribe to existing events 15:56:40 ack next 15:57:34 q+ 15:57:36 sadym (IRC): the question is not only about the device choice automation but also about other extensions. Should regular permissions be part of the bidi API? 15:57:52 jgraham: webdriver has a spec for permissions 15:58:08 jgraham: there is certainly a precedent for permissions being an extension 15:58:19 q+ 15:58:26 jgraham: but it might be that general permissions could in the core spec. It depends? 15:58:47 jgraham: e.g., device choice has different workflow compared to the yes/no permissions 15:59:36 jgraham: we want to reformulate classic on top of bidi, so we would need an equivalent in bidi 15:59:52 ack jfernandez 16:01:23 jfernandez: maybe I have not understood the use case completely. But it is very similar to the use case I tried to define for the protocol handlers API. SPC dialog also requires permissions. So in order to implement WPT they defined an extension command for webdriver which puts the feature into a specific mode that allows the feature to ignore the prompt. 16:02:27 jfernandez: it seems that there are several features that require bypassing the workflow. Another option for you would be another extension command for webdriver to bypass prompts. If that is the case, do we want a lot of extension commands for the same purpose? 16:03:10 mattreynolds (IRC): I would that agree that for apis that do not have chooser dialog it is a good way 16:03:40 mattreynolds (IRC): and the bluetooth api dialog has a dynamic list and we need to tell which item to select 16:04:00 ack next 16:06:27 mzgoddard (IRC): we talk about it as permissions but that is a chooser prompt that can get a list of many devices and they don't show up all at once. And bluetooth needs to wait for the wireless communication. The list does not always show up in the same order. And we cannot always say choose the first device and the order is not deterministic. And the second thing I would like to express: there are three other APIS, USB, Serial, ? that also has 16:06:27 the list of devices that updates based on the filter. 16:06:40 s/?/WebHID/ 16:06:44 mattreynolds (IRC): technically there is also a find access dialog 16:06:54 s/find access/font access/ 16:06:59 ack next 16:07:46 shs96c: while those things should live in their own specifications. One thing we can have a non-normative section on how to perform common patterns so that there is a consistency between related specs 16:07:56 q? 16:08:36 Topic: Sandbox mode 16:08:45 q+ 16:08:56 github: https://github.com/w3c/webdriver-bidi/issues/289 16:09:13 ScribeNick: jgraham 16:11:10 q+ 16:11:10 orkon: The problem is that Puppeteer supports a command based on CDP that allows partitioning browsing contexts into multiple profiles based on incognito modes. Terminology here is hard because of existing usage. Proposal is to call it "browsing context group". I've prepared a short draft we can discuss. Are there high level concerns about the need for this API? 16:11:10 sck orkon 16:11:10 * ack orkon 16:11:10 ack next 16:12:02 jgraham: Browing context group is already a thing in HTML, but let's work out naming later. 16:13:00 * ```... (full message at ) 16:15:20 orkon: Three more operations. One to create a group. Chrome has properties that can be given to specific groups. Don't want those in specification, but it should be extensible. Group should get an id. That will close all contexts in a group without running unload handlers. Third method gets all groups. Add group parameters so you can get contexts in a specific group. Also allow defining permissions per group. Another aspect is that storage is 16:15:20 separated between groups. User action causing new browsing context to be created causes it to be created in same group. Whether this affects on-disk storage of data could be implementation detail. Primary use case is not needing to restart browser to get isolated test environments and have easy cleanup. 16:15:27 q+ 16:15:34 ack shs96c 16:16:12 shs96c: Browser groups are effectively totally independent of each other? Another model would be multiple independent sessions? 16:16:40 orkon: Groups are kind of independent. Shared browser process. Can connect multiple sessions to groups. 16:17:17 shs96c: This seems like it might be specific to how chrome is implementing this feature. Need to talk to WebKit. 16:19:11 q+ 16:19:19 shs96c: Selenium wants fast startup time, not containerization. Sounds like this maps a bit to containers in firefox, but maybe not exactly. Might be worth going back to use cases i.e. fast startup time of independent concurrent sessions. Everyone should be behind that. I don't think we need to go this far e.g. chromedriver creates browser process and a group and new session creates a new group rather than a new group. Don't know if we need to 16:19:19 expose this level of control to individual user. Completely new session could be a flag. 16:19:29 ack next 16:19:53 ScribeNick: orkon 16:20:45 jgraham: nervous about using new session for this. Concerned about using it for this specific use case 16:21:02 q- 16:21:35 jgraham: it is important it is supported by Webkit 16:21:57 jgraham: on Firefox side maybe it maps to exposing containers 16:22:46 shs96c: given my knowledge in WebKit it maps to profile 16:23:26 jgraham: the ability to have multiple private browsing windows might be Chrome only 16:24:23 jgraham: on the protocol level it sounds like we need to add a group id next to the context id 16:26:10 jgraham: does the format on protocol makes the clients to have it easy to have separation? 16:26:29 q+ 16:26:42 jgraham: if it is a property on the browsing context object in theory it is possible 16:28:42 orkon: Goal is to enable seperation on the browser side. Don't necessarily need clients to be able to enforce seperations. 16:30:47 shs96c: Supposes that everything could support groups. We should think about the expected behaviour of not supporting groups. If that's just like calling New Session, we should consider the context e.g. is it connecting to an exisiting instnace or are we creating a new isolated world. The features are incredibly desirable. Being able to connect to an existing browser process as a new session. Being able to have both of these things would be 16:30:47 good. Might not need a new API. If every new group had a new sokcet URL you could distinguish between old and new processes. 16:36:48 RRSAgent: make minutes 16:36:50 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jgraham 16:36:57 zakim: bye 17:10:15 s/Aaron Leventhal from Google is trying to make this the same/Aaron Leventhal from Google suggested a variant "normalized" ax parent which could make these the same... possibly align on a single ax tree / 17:10:53 rrsagent, make minutes 17:10:55 I have made the request to generate https://www.w3.org/2023/09/14-webdriver-minutes.html jcraig 18:41:45 Zakim has left #webdriver