WWAHost: bring back browse mode for Store apps in Windows 8.x?

 

Hi all,

 

I’m wrestling with the following GitHub issue:

https://github.com/nvaccess/nvda/issues/9117

 

Background: Windows 8.x introduced hosted web apps inside a dedicated app called WWA Host. In 2012, Mick created an app module that tells NVDA that this is an app, not a browse mode document. Although it brought peace to web apps support in Windows 8.x, it does not represent reality in 2019 where we have more web apps popping up on Microsoft Store on Windows 10. In fact, progressive web apps (PWA’s) on Windows 10 are really interfaces to web services that behave like native apps, and they use EdgeHTML as rendering engine, thereby making app role coercion fall apart.

 

I bring this to your attention for a number of reasons. First, I think we need to think about current reality when it comes to supporting web apps hosted inside wwahost.exe, as they are web apps more than native apps from the old days. Second, we can now use a flag in app modules to specify that an app should not be using browse mode at startup, thereby allowing older apps to appear to be native apps to users. Third, I’m working on a pull request that will allow people to write dedicated app modules for web apps hosted inside WWA Host, and based on current pull request work, app role coercion fails because NVDA will load the app module associated with the app in use without loading the app module class.

 

Therefore I’m in favor of bringing back browse mode for apps hosted on WWA Host, and let individual app modules choose whether they wish to disable browse mode. This is more applicable on Windows 8.x as most apps (at least older ones) are really a hybrid of native app and a web service, given they are hosted inside wwahost.exe (written with web in mind); on Windows 10, no change is necessary as PWA’s hosted inside wwahost.exe are meant to be web apps, although the flag to disable browse mode may come in handy for some.

 

Comments are appreciated.

Cheers,

Joseph

Join nvda-devel@groups.io to automatically receive all group messages.