Issue metadata
Sign in to add a comment
|
[Select-to-Speak] Text in Google Slides is not read smoothly |
||||||||||||||||||||||||
Issue descriptionSTS reads each line separately instead of flowingly.
,
Feb 21 2018
Initially this will be fixed by crbug.com/922444 (use clipboard instead of a11y tree). However, later we can try sorting the SVG nodes by visible X,Y instead of DOM order -- see go/sts-selection-in-drive under "background and notes".
,
Mar 9 2018
,
Mar 19 2018
,
Mar 19 2018
,
Oct 3
A quick investigation shows that the SVG root always has the same structure for text children: root > genericContainer > staticText > inlineTextBox Using this we could assume that all inlineTextBoxes in a svgRoot are in the same paragraph, and read them smoothly. This would be a different "incorrect" behavior that might be more user-friendly. Laura, curious for your thoughts!
,
Oct 4
Offline, Laura agrees that this is a better "incorrect", so I'll get that done at least. Sorting text within SVGs by text location should happen later, and may be difficult because text can follow paths, be different colors, or otherwise have visual groupings that are hard to determine from X,Y coordinates only.
,
Oct 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3f5a30951c242842410ea016b178bcd87507e986 commit 3f5a30951c242842410ea016b178bcd87507e986 Author: Katie D <katie@chromium.org> Date: Thu Oct 04 22:09:48 2018 Read text in SVGs in DOM order as if it is in a single paragraph. This makes Slides read more smoothly, but will not differentiate between spaces between words and paragraphs in intonation. DOM ordering is used rather than visual ordering, this is unchanged. Bug: 809734 Change-Id: Ieb17eef53f4de360f2d1f13e8a561d3aa05af115 Reviewed-on: https://chromium-review.googlesource.com/c/1262086 Reviewed-by: David Tseng <dtseng@chromium.org> Commit-Queue: Katie Dektar <katie@chromium.org> Cr-Commit-Position: refs/heads/master@{#596881} [modify] https://crrev.com/3f5a30951c242842410ea016b178bcd87507e986/chrome/browser/resources/chromeos/select_to_speak/paragraph_utils.js [modify] https://crrev.com/3f5a30951c242842410ea016b178bcd87507e986/chrome/browser/resources/chromeos/select_to_speak/paragraph_utils_unittest.gtestjs [modify] https://crrev.com/3f5a30951c242842410ea016b178bcd87507e986/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js [modify] https://crrev.com/3f5a30951c242842410ea016b178bcd87507e986/chrome/browser/resources/chromeos/select_to_speak/test_support.js
,
Oct 5
I'll make a separate bug for reading SVG in (x,y) order. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by katie@chromium.org
, Feb 7 2018The reason is that each word in the presentation is in a separate genericContainer in the svgRoot, so they are not in the same "paragraph". I think this is also a problem for Chromevox. We may need to work in collaboration with the slides team to solve this. Here's an example of a slide with a bulleted list of sentences: node id=334 role=genericContainer state={} parentID=332 childIds=[376] node id=376 role=svgRoot state={} parentID=334 childIds=[402,403,404,405,406,407,429,430,431,432,433,440,441,442,443,444,445,446,447,454,455,456,457,458,459,460,461,468,469,470,471,472,473,474,475,476,482,483,484,485,486,487,494,495,496,497,504,505,506,507,508,509,510,511,512,519,520,521,522,523,530,531,532,533] node id=402 role=genericContainer state={} parentID=376 childIds=[539] node id=539 role=staticText state={} parentID=402 childIds=[2956] node id=2956 role=inlineTextBox state={} parentID=539 childIds=[] node id=403 role=genericContainer state={} parentID=376 childIds=[541] node id=541 role=staticText state={} parentID=403 childIds=[2957] node id=2957 role=inlineTextBox state={} parentID=541 childIds=[] node id=404 role=genericContainer state={} parentID=376 childIds=[543] node id=543 role=staticText state={} parentID=404 childIds=[2958] node id=2958 role=inlineTextBox state={} parentID=543 childIds=[] node id=405 role=genericContainer state={} parentID=376 childIds=[545] node id=545 role=staticText state={} parentID=405 childIds=[2959] node id=2959 role=inlineTextBox state={} parentID=545 childIds=[] node id=406 role=genericContainer state={} parentID=376 childIds=[547] node id=547 role=staticText state={} parentID=406 childIds=[2960] node id=2960 role=inlineTextBox state={} parentID=547 childIds=[] node id=407 role=genericContainer state={} parentID=376 childIds=[549] node id=549 role=staticText state={} parentID=407 childIds=[2961] node id=2961 role=inlineTextBox state={} parentID=549 childIds=[] node id=429 role=genericContainer state={} parentID=376 childIds=[551] node id=551 role=staticText state={} parentID=429 childIds=[2962] node id=2962 role=inlineTextBox state={} parentID=551 childIds=[] node id=430 role=genericContainer state={} parentID=376 childIds=[553] node id=553 role=staticText state={} parentID=430 childIds=[2963] node id=2963 role=inlineTextBox state={} parentID=553 childIds=[] node id=431 role=genericContainer state={} parentID=376 childIds=[555] node id=555 role=staticText state={} parentID=431 childIds=[2964] node id=2964 role=inlineTextBox state={} parentID=555 childIds=[] node id=432 role=genericContainer state={} parentID=376 childIds=[557] node id=557 role=staticText state={} parentID=432 childIds=[2965] node id=2965 role=inlineTextBox state={} parentID=557 childIds=[] node id=433 role=genericContainer state={} parentID=376 childIds=[559] node id=559 role=staticText state={} parentID=433 childIds=[2966] node id=2966 role=inlineTextBox state={} parentID=559 childIds=[] node id=440 role=genericContainer state={} parentID=376 childIds=[561] node id=561 role=staticText state={} parentID=440 childIds=[2967] node id=2967 role=inlineTextBox state={} parentID=561 childIds=[] node id=441 role=genericContainer state={} parentID=376 childIds=[563] node id=563 role=staticText state={} parentID=441 childIds=[2968] node id=2968 role=inlineTextBox state={} parentID=563 childIds=[] node id=442 role=genericContainer state={} parentID=376 childIds=[565] node id=565 role=staticText state={} parentID=442 childIds=[2969] node id=2969 role=inlineTextBox state={} parentID=565 childIds=[] node id=443 role=genericContainer state={} parentID=376 childIds=[567] node id=567 role=staticText state={} parentID=443 childIds=[2970] node id=2970 role=inlineTextBox state={} parentID=567 childIds=[] node id=444 role=genericContainer state={} parentID=376 childIds=[569] node id=569 role=staticText state={} parentID=444 childIds=[2971] node id=2971 role=inlineTextBox state={} parentID=569 childIds=[] node id=445 role=genericContainer state={} parentID=376 childIds=[571] node id=571 role=staticText state={} parentID=445 childIds=[2972] node id=2972 role=inlineTextBox state={} parentID=571 childIds=[] node id=446 role=genericContainer state={} parentID=376 childIds=[573] node id=573 role=staticText state={} parentID=446 childIds=[2973] node id=2973 role=inlineTextBox state={} parentID=573 childIds=[] node id=447 role=genericContainer state={} parentID=376 childIds=[575] node id=575 role=staticText state={} parentID=447 childIds=[2974] node id=2974 role=inlineTextBox state={} parentID=575 childIds=[] node id=454 role=genericContainer state={} parentID=376 childIds=[577] node id=577 role=staticText state={} parentID=454 childIds=[2975] node id=2975 role=inlineTextBox state={} parentID=577 childIds=[] node id=455 role=genericContainer state={} parentID=376 childIds=[579] node id=579 role=staticText state={} parentID=455 childIds=[2976] node id=2976 role=inlineTextBox state={} parentID=579 childIds=[] node id=456 role=genericContainer state={} parentID=376 childIds=[581] node id=581 role=staticText state={} parentID=456 childIds=[2977] node id=2977 role=inlineTextBox state={} parentID=581 childIds=[] node id=457 role=genericContainer state={} parentID=376 childIds=[583] node id=583 role=staticText state={} parentID=457 childIds=[2978] node id=2978 role=inlineTextBox state={} parentID=583 childIds=[] node id=458 role=genericContainer state={} parentID=376 childIds=[585] node id=585 role=staticText state={} parentID=458 childIds=[2979] node id=2979 role=inlineTextBox state={} parentID=585 childIds=[] node id=459 role=genericContainer state={} parentID=376 childIds=[587] node id=587 role=staticText state={} parentID=459 childIds=[2980] node id=2980 role=inlineTextBox state={} parentID=587 childIds=[] node id=460 role=genericContainer state={} parentID=376 childIds=[589] node id=589 role=staticText state={} parentID=460 childIds=[2981] node id=2981 role=inlineTextBox state={} parentID=589 childIds=[] node id=461 role=genericContainer state={} parentID=376 childIds=[591] node id=591 role=staticText state={} parentID=461 childIds=[2982] node id=2982 role=inlineTextBox state={} parentID=591 childIds=[] node id=468 role=genericContainer state={} parentID=376 childIds=[593] node id=593 role=staticText state={} parentID=468 childIds=[2983] node id=2983 role=inlineTextBox state={} parentID=593 childIds=[] node id=469 role=genericContainer state={} parentID=376 childIds=[595] node id=595 role=staticText state={} parentID=469 childIds=[2984] node id=2984 role=inlineTextBox state={} parentID=595 childIds=[] node id=470 role=genericContainer state={} parentID=376 childIds=[597] node id=597 role=staticText state={} parentID=470 childIds=[2985] node id=2985 role=inlineTextBox state={} parentID=597 childIds=[] node id=471 role=genericContainer state={} parentID=376 childIds=[599] node id=599 role=staticText state={} parentID=471 childIds=[2986] node id=2986 role=inlineTextBox state={} parentID=599 childIds=[] node id=472 role=genericContainer state={} parentID=376 childIds=[601] node id=601 role=staticText state={} parentID=472 childIds=[2987] node id=2987 role=inlineTextBox state={} parentID=601 childIds=[] node id=473 role=genericContainer state={} parentID=376 childIds=[603] node id=603 role=staticText state={} parentID=473 childIds=[2988] node id=2988 role=inlineTextBox state={} parentID=603 childIds=[] node id=474 role=genericContainer state={} parentID=376 childIds=[605] node id=605 role=staticText state={} parentID=474 childIds=[2989] node id=2989 role=inlineTextBox state={} parentID=605 childIds=[] node id=475 role=genericContainer state={} parentID=376 childIds=[607] node id=607 role=staticText state={} parentID=475 childIds=[2990] node id=2990 role=inlineTextBox state={} parentID=607 childIds=[] node id=476 role=genericContainer state={} parentID=376 childIds=[609] node id=609 role=staticText state={} parentID=476 childIds=[2991] node id=2991 role=inlineTextBox state={} parentID=609 childIds=[] node id=482 role=genericContainer state={} parentID=376 childIds=[611] node id=611 role=staticText state={} parentID=482 childIds=[2992] node id=2992 role=inlineTextBox state={} parentID=611 childIds=[] node id=483 role=genericContainer state={} parentID=376 childIds=[613] node id=613 role=staticText state={} parentID=483 childIds=[2993] node id=2993 role=inlineTextBox state={} parentID=613 childIds=[] node id=484 role=genericContainer state={} parentID=376 childIds=[615] node id=615 role=staticText state={} parentID=484 childIds=[2994] node id=2994 role=inlineTextBox state={} parentID=615 childIds=[] node id=485 role=genericContainer state={} parentID=376 childIds=[617] node id=617 role=staticText state={} parentID=485 childIds=[2995] node id=2995 role=inlineTextBox state={} parentID=617 childIds=[] node id=486 role=genericContainer state={} parentID=376 childIds=[619] node id=619 role=staticText state={} parentID=486 childIds=[2996] node id=2996 role=inlineTextBox state={} parentID=619 childIds=[] node id=487 role=genericContainer state={} parentID=376 childIds=[621] node id=621 role=staticText state={} parentID=487 childIds=[2997] node id=2997 role=inlineTextBox state={} parentID=621 childIds=[] node id=494 role=genericContainer state={} parentID=376 childIds=[623] node id=623 role=staticText state={} parentID=494 childIds=[2998] node id=2998 role=inlineTextBox state={} parentID=623 childIds=[] node id=495 role=genericContainer state={} parentID=376 childIds=[625] node id=625 role=staticText state={} parentID=495 childIds=[2999] node id=2999 role=inlineTextBox state={} parentID=625 childIds=[] node id=496 role=genericContainer state={} parentID=376 childIds=[627] node id=627 role=staticText state={} parentID=496 childIds=[3000] node id=3000 role=inlineTextBox state={} parentID=627 childIds=[] node id=497 role=genericContainer state={} parentID=376 childIds=[629] node id=629 role=staticText state={} parentID=497 childIds=[3001] node id=3001 role=inlineTextBox state={} parentID=629 childIds=[] node id=504 role=genericContainer state={} parentID=376 childIds=[631] node id=631 role=staticText state={} parentID=504 childIds=[3002] node id=3002 role=inlineTextBox state={} parentID=631 childIds=[] node id=505 role=genericContainer state={} parentID=376 childIds=[633] node id=633 role=staticText state={} parentID=505 childIds=[3003] node id=3003 role=inlineTextBox state={} parentID=633 childIds=[] node id=506 role=genericContainer state={} parentID=376 childIds=[635] node id=635 role=staticText state={} parentID=506 childIds=[3004] node id=3004 role=inlineTextBox state={} parentID=635 childIds=[] node id=507 role=genericContainer state={} parentID=376 childIds=[637] node id=637 role=staticText state={} parentID=507 childIds=[3005] node id=3005 role=inlineTextBox state={} parentID=637 childIds=[] node id=508 role=genericContainer state={} parentID=376 childIds=[639] node id=639 role=staticText state={} parentID=508 childIds=[3006] node id=3006 role=inlineTextBox state={} parentID=639 childIds=[] node id=509 role=genericContainer state={} parentID=376 childIds=[641] node id=641 role=staticText state={} parentID=509 childIds=[3007] node id=3007 role=inlineTextBox state={} parentID=641 childIds=[] node id=510 role=genericContainer state={} parentID=376 childIds=[643] node id=643 role=staticText state={} parentID=510 childIds=[3008] node id=3008 role=inlineTextBox state={} parentID=643 childIds=[] node id=511 role=genericContainer state={} parentID=376 childIds=[645] node id=645 role=staticText state={} parentID=511 childIds=[3009] node id=3009 role=inlineTextBox state={} parentID=645 childIds=[] node id=512 role=genericContainer state={} parentID=376 childIds=[647] node id=647 role=staticText state={} parentID=512 childIds=[3010] node id=3010 role=inlineTextBox state={} parentID=647 childIds=[] node id=519 role=genericContainer state={} parentID=376 childIds=[649] node id=649 role=staticText state={} parentID=519 childIds=[3011] node id=3011 role=inlineTextBox state={} parentID=649 childIds=[] node id=520 role=genericContainer state={} parentID=376 childIds=[651] node id=651 role=staticText state={} parentID=520 childIds=[3012] node id=3012 role=inlineTextBox state={} parentID=651 childIds=[] node id=521 role=genericContainer state={} parentID=376 childIds=[653] node id=653 role=staticText state={} parentID=521 childIds=[3013] node id=3013 role=inlineTextBox state={} parentID=653 childIds=[] node id=522 role=genericContainer state={} parentID=376 childIds=[655] node id=655 role=staticText state={} parentID=522 childIds=[3014] node id=3014 role=inlineTextBox state={} parentID=655 childIds=[] node id=523 role=genericContainer state={} parentID=376 childIds=[657] node id=657 role=staticText state={} parentID=523 childIds=[3015] node id=3015 role=inlineTextBox state={} parentID=657 childIds=[] node id=530 role=genericContainer state={} parentID=376 childIds=[659] node id=659 role=staticText state={} parentID=530 childIds=[3016] node id=3016 role=inlineTextBox state={} parentID=659 childIds=[] node id=531 role=genericContainer state={} parentID=376 childIds=[661] node id=661 role=staticText state={} parentID=531 childIds=[3017] node id=3017 role=inlineTextBox state={} parentID=661 childIds=[] node id=532 role=genericContainer state={} parentID=376 childIds=[663] node id=663 role=staticText state={} parentID=532 childIds=[3018] node id=3018 role=inlineTextBox state={} parentID=663 childIds=[] node id=533 role=genericContainer state={} parentID=376 childIds=[665] node id=665 role=staticText state={} parentID=533 childIds=[3019] node id=3019 role=inlineTextBox state={} parentID=665 childIds=[]