The trickiest part of this will be the logic for manipulating the endpoints of a UIA text range; this is notoriously hard to get right. We also need to raise the appropriate events when the text or the selection changes. Support for embedded objects, e.g. hyperlinks, is explicitly out of scope at this phase. Support for variable text attributes, such as formatting attributes or spelling errors, might be doable at this point; I'll need to find out how much work it is to implement these in our Chromium-based design.