Web: Mobile Safari support
See original GitHub issueThis is a meta issue for our Safari (on iOS/iPadOS) support (issue list) and this can be used to track the limitations and gaps we see today on mobile / touch screens.
updated Oct 2020.
To enable users to use the Web UI in Safari on iOS for some basic work, we need to fix the following blocking issues
Blockers
- ✋ Missing
wheel
event https://github.com/microsoft/vscode/issues/106232 (upstream https://bugs.webkit.org/show_bug.cgi?id=210071 ) - Blockers on Safari desktop https://github.com/microsoft/vscode/issues/108637
- 🏃 Workbench size inconsistent with visual viewport https://github.com/microsoft/vscode/issues/108267
- 🏃 Port forwarding blocked https://github.com/MicrosoftDocs/vscodespaces/issues/728
- No authentication flow as it can’t open a new window
- can not debug extensions
- UI affordance fallback for
cursor:
styles https://github.com/microsoft/vscode/issues/108832 - Drag & Drop views/panels with mouse events https://dvcs.w3.org/hg/d4e/raw-file/tip/mouse-event-test.html
Bugs
- Touch/pointers not working (Settings Editor dropdown, view header, etc) https://github.com/microsoft/vscode/issues?q=is%3Aopen+label%3Atouch%2Fpointer+label%3Aios
- MISC https://github.com/microsoft/vscode/issues?q=is%3Aopen+label%3Aios+label%3Abug+-label%3Atouch%2Fpointer
With above items finished, users can use the Web UI for basic tasks if they us an external keyboard and mouse. However if you are not using an external keyboard with Escape and Function keys, or a mouse/pointer device, you can easily find the Web UI difficult to use and you can’t be as productive as on the desktop. Major blockers are:
- Escape. Escape key is the major key for hiding UI elements in the workbench. For native elements, iOS may know how to map
Ctrl+[
to behave the same as Escape, however for our keybinding service, we always check keyboard event, which doesn’t understandCtrl+[
at all.- To mimic the native smart keyboard experience, we can build a Keymap extension, which remaps
Ctrl+[
to commands which used to be triggered byEscape
.
- To mimic the native smart keyboard experience, we can build a Keymap extension, which remaps
- Function keys. Without Fn keys, quite a lot of our core features are not highly accessible: Command Palette (F1), Rename (F2), Next Match (F3), Next Reference (F4), Debug (F5, F9, F10, F11), Next Problem (F8), Go to Definition/Impl (F12), etc.
- Hover is missing. Definition/Implementation hovers in editor, View title bar actions, List View quick actions, etc rely on Hover events triggered from mouse move. They are hidden by default and only visible and actionable when hover happens (or sometimes even worse, hover with keyboard shortcuts). On a touch screen, these features are not accessible.
- Debug
window.open
only works if it’s triggered from user click and synchronous. For debugging VS Code extension in the Web, it’s silently broken as the window will not be opened without any error message.
- Most UI elements are small. This is exacerbated by even the smallest mouse cursor being a rather large circle.
- Button/Checkbox/ActionbarItem are 10-20 px wide. It requires users to be very precise while acting on them.
- Default list view height is small and not customizable.
- Editor gutter consists of glyph area (we put breakpoints on it), line number and margin (we put folding icon on it) and users can easily mis-click/touch anyone of them.
- Sashes are thin and no indicator for clicking or dragging
Issue Analytics
- State:
- Created 4 years ago
- Reactions:21
- Comments:13 (7 by maintainers)
Top Results From Across the Web
Browse the web using Safari on iPhone - Apple Support
Browse the web using Safari on iPhone. In the Safari app , you can browse the web, view websites, preview website links, translate...
Read more >"Mobile" | Can I use... Support tables for HTML5, CSS3, etc
"Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile web browsers.
Read more >Lightning Experience and Classic UI full site in mobile browsers
If you encounter any issues or questions with using Safari on iPadOS to access Lightning Experience (desktop UI) please contact Support. These will...
Read more >Cross Browser Compatibility of Web Workers in Safari 14
Web Workers is Fully Supported on Safari 14, which means that any user who'd be accessing your page through Safari 14 can see...
Read more >Enabling Third-Party Cookies for Mobile Safari - YuJa Support
Scroll down and select Safari from the left navigation menu. Under Security & Privacy, disable both “Block All Cookies” and “Prevent Cross-Site ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
The following comes from a short test-run with @rebornix of GH Codespaces in Safari on iPad. Some of the issues are caused by the VS Code WebUI being embedded in an iframe. This will change in the near future as we’ll move out of iFrame.
IFrame issues
Other issues
Polish
@rebornix pls see also https://github.com/github/codespaces/issues/1345