Support for rich text editing in Mozilla applications #1668

Closed
nvaccessAuto opened this Issue Jul 14, 2011 · 19 comments

2 participants

@nvaccessAuto

Reported by jteh on 2011-07-14 00:42
We have some hacks which allow very basic rich text editing to work in Mozilla applications such as Firefox and Thunderbird. However, it is unreliable at best and doesn't support reading of embedded links, etc. Better support needs to be implemented using the compound documents framework.
Blocking #163, #3155, #3820, #4063

@nvaccessAuto

Comment 2 by jteh on 2011-07-21 23:55
http://bzr.nvaccess.org/nvda/geckoRichTextEditing/
Work has begun, but this is far from being complete.

@nvaccessAuto

Comment 3 by jteh on 2011-08-09 05:51
Status:

  • It's now possible to work with rich text with the caret and review cursor, though bugs in Gecko make this a bit inconsistent/unreliable/broken. See MozillaBug:671499, MozillaBug:672157, MozillaBug:672717
  • Say all works.
  • Tables aren't yet supported and cause lots of brokenness, as they don't conform to the embedded object hierarchy that Gecko uses elsewhere.
  • Selection is not yet supported.
  • This isn't tested much at all, so there's probably other brokenness too.
@nvaccessAuto

Comment 6 by camlorn on 2013-04-16 02:22
Just commenting, as I'm the creator of #3155.
This has problems in Thunderbird and in the WordPress visual editor. This may happen on Blackboard, as I think that might be the same/a similar editor. The problem seems more general than that, though.
If someone needs access to WordPress for testing purposes, I can probably arrange that. Getting access isn't hard, but if someone really needs it I can probably help.
Can we do anything to push the Mozilla bugs through, besides comment? I'm headed that way next.

@nvaccessAuto

Comment 7 by jteh on 2013-04-16 02:54
It so happens that there's some work related to this happening at Mozilla recently. There's still a lot of work to be done and a few big decisions to be made which will unfortunately impact other areas as well, so it'll be a few months at the very least before we see anything useful.

@nvaccessAuto

Comment 8 by camlorn on 2013-04-18 01:29
I'd be interested in links, if you're at liberty to share them. I was going to suggest that we might have to patch Firefox ourselves, but obviously getting Mozilla to do it would be a much better option.

@nvaccessAuto

Comment 9 by jteh on 2013-07-09 05:31
I've removed the geckoRichTextEditing branch, rebased it on current master and pushed it as t1668. I'm in the process of investigating whether we can at least get this to a point where it's better than nothing, even if it has bugs we can't yet fix.

@nvaccessAuto

Attachment yahoo mail.txt added by Sukil on 2014-03-11 17:43
Description:

@nvaccessAuto

Comment 13 by Sukil on 2014-03-11 17:50
It's really strange, but sometimes,in the same session, I can get NVDA to work properly with Yahoo mail compose field, even reporting bold text. I've attached a text file containing the developer info for this object, working and not working, at the info level.

@nvaccessAuto

Comment 17 by bdorer (in reply to comment 7) on 2014-12-14 20:37
Is their any progress on it?

Replying to jteh:

It so happens that there's some work related to this happening at Mozilla recently. There's still a lot of work to be done and a few big decisions to be made which will unfortunately impact other areas as well, so it'll be a few months at the very least before we see anything useful.

@nvaccessAuto

Comment 18 by jteh on 2014-12-14 22:51
Some bugs have been fixed in Mozilla. I'm still working on our code for this as mentioned in comment:9, but it's taking a lot longer than I'd like, not least due to other work.

@nvaccessAuto

Comment 19 by jteh on 2015-06-05 04:04
We've made a great deal more progress on this, so I'm hoping to get this into 2015.3.
Changes:
Milestone changed from near-term to 2015.3

@nvaccessAuto

Comment 20 by jteh on 2015-08-14 05:18
Changes:
Milestone changed from 2015.3 to 2015.4

@nvaccessAuto

Comment 21 by James Teh <jamie@... on 2015-09-21 03:00
In commit 4dd24d4:
Merge branch 't1668' into next

Incubates #1668.
Changes:
Added labels: incubating

@nvaccessAuto

Comment 22 by James Teh <jamie@... on 2015-09-22 11:32
In commit 3d1cdbe:
Merge branch 't1668' into next

Incubates #1668.

@nvaccessAuto

Comment 23 by James Teh <jamie@... on 2015-09-23 03:46
In commit 0128ba4:
Merge branch 't1668' into next

Incubates #1668.

@nvaccessAuto

Comment 24 by James Teh <jamie@... on 2015-10-14 10:48
In commit f2ab74d:
Merge branch 't1668' into next

Incubates #1668.

@nvaccessAuto

Comment 25 by James Teh <jamie@... on 2015-10-21 23:22
In commit 9891c08:
Merge branch 't1668' into next

Incubates #1668.

@nvaccessAuto

Comment 26 by James Teh <jamie@... on 2015-10-22 05:23
In commit 2cd20ce:
Merge branch 't1668' into next

Incubates #1668.

@nvaccessAuto

Comment 27 by James Teh <jamie@... on 2015-11-01 23:02
In commit 0eb6a4d:
Support for editing of rich text in Mozilla applications such as Google Docs with braille support enabled in Mozilla Firefox and HTML composition in Mozilla Thunderbird.

Other technical changes worth noting:

  • Remove TextInfo.getEmbeddedObject and NVDAObject.embeddingTextInfo. These were only ever used by IA2, and even then, they differed depending on the implementation.
  • nvdaHelperRemote: Introduce execInWindow to simplify/unify execution of code within the thread of a given window from an RPC call.
  • IAccessible NVDAObject: IA2 windowHandle and states are now cached to make equality checks faster.

Fixes #1668.
Changes:
Removed labels: incubating
State: closed

@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2015.4 milestone Nov 10, 2015
@jcsteh jcsteh added a commit that referenced this issue Nov 23, 2015
@jcsteh jcsteh Support for editing of rich text in Mozilla applications such as Goog…
…le Docs with braille support enabled in Mozilla Firefox and HTML composition in Mozilla Thunderbird.

Other technical changes worth noting:
* Remove TextInfo.getEmbeddedObject and NVDAObject.embeddingTextInfo. These were only ever used by IA2, and even then, they differed depending on the implementation.
* nvdaHelperRemote: Introduce execInWindow to simplify/unify execution of code within the thread of a given window from an RPC call.
* IAccessible NVDAObject: IA2 windowHandle and states are now cached to make equality checks faster.

Fixes #1668.
0eb6a4d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment