From 944953dbf27355c678abfd3f225a63dc2ddac226 Mon Sep 17 00:00:00 2001 From: Nikola Plesa Date: Wed, 1 Jul 2020 16:50:30 +0200 Subject: [PATCH 01/22] Update Mapillary map_features URL and remove request_data button --- modules/services/mapillary.js | 5 ++--- modules/ui/sections/photo_overlays.js | 12 ------------ 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/modules/services/mapillary.js b/modules/services/mapillary.js index 7d0c560eb..50ce60ede 100644 --- a/modules/services/mapillary.js +++ b/modules/services/mapillary.js @@ -14,7 +14,6 @@ var viewercss = 'mapillary-js/mapillary.min.css'; var viewerjs = 'mapillary-js/mapillary.min.js'; var clientId = 'NzNRM2otQkR2SHJzaXJmNmdQWVQ0dzo1ZWYyMmYwNjdmNDdlNmVi'; var mapFeatureConfig = { - organizationKey: 'FI3NAFfzQQgdF081TRdgTy', values: [ 'construction--flat--crosswalk-plain', 'marking--discrete--crosswalk-zebra', @@ -372,8 +371,8 @@ export default { loadMapFeatures: function(projection) { // if we are looking at signs, we'll actually need to fetch images too loadTiles('images', apibase + 'images?sort_by=key', projection); - loadTiles('points', apibase + 'map_features?layers=points&min_nbr_image_detections=2&sort_by=key&shapes_by_organization_keys=' + mapFeatureConfig.organizationKey + '&' + 'values=' + mapFeatureConfig.values + '&', projection); - loadTiles('image_detections', apibase + 'image_detections?layers=points&sort_by=key&shapes_by_organization_keys=' + mapFeatureConfig.organizationKey + '&' + 'values=' + mapFeatureConfig.values + '&', projection); + loadTiles('points', apibase + 'map_features?layers=points&min_nbr_image_detections=2&sort_by=key&values=' + mapFeatureConfig.values + '&', projection); + loadTiles('image_detections', apibase + 'image_detections?layers=points&sort_by=key&values=' + mapFeatureConfig.values + '&', projection); }, diff --git a/modules/ui/sections/photo_overlays.js b/modules/ui/sections/photo_overlays.js index 2224f6647..b3c83f2b2 100644 --- a/modules/ui/sections/photo_overlays.js +++ b/modules/ui/sections/photo_overlays.js @@ -4,7 +4,6 @@ import { import { t } from '../../core/localizer'; import { uiTooltip } from '../tooltip'; -import { svgIcon } from '../../svg/icon'; import { uiSection } from '../section'; export function uiSectionPhotoOverlays(context) { @@ -93,17 +92,6 @@ export function uiSectionPhotoOverlays(context) { return t(id.replace(/-/g, '_') + '.title'); }); - labelEnter - .filter(function(d) { return d.id === 'mapillary-map-features'; }) - .append('a') - .attr('class', 'request-data-link') - .attr('target', '_blank') - .attr('tabindex', -1) - .call(svgIcon('#iD-icon-out-link', 'inline')) - .attr('href', 'https://mapillary.github.io/mapillary_solutions/data-request') - .append('span') - .text(t('mapillary_map_features.request_data')); - // Update li From 8f802fa76d89e612be01e39731f6274d366479ff Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sat, 4 Jul 2020 21:34:21 -0400 Subject: [PATCH 02/22] Update ACCESSIBILITY.md Add additional links and icons Add info about lang attribute support Reword a few things --- ACCESSIBILITY.md | 61 ++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index b0cdab658..c5a55242e 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -8,7 +8,7 @@ follow [universal design](https://en.wikipedia.org/wiki/Universal_design) princi This is a living document that details the usability of iD across a number of dimensions, with the intent of identifying and addressing problem areas. Since there are always more -factors to consider, no part of this document should be considered "complete". +factors to consider, no part of this document should be considered complete. Symbols used in this document: @@ -30,14 +30,14 @@ elsewhere in this document. | | | Browser | Notes | Issues | |---|---|---|---|---| -| โœ… | ![chrome logo] | Chrome | | -| โœ…* | ![firefox logo] | Firefox | \*Minor known issues | [#7132] | -| โœ… | ![safari logo] | Safari | | -| ๐ŸŸฉ | ![opera logo] | Opera | | -| ๐ŸŸฉ | ![edge logo] | Edge | | -| ๐ŸŸ  | ![ie logo] | Internet Explorer | IE has been discontinued, but IE 11 is still maintained. iD polyfills ES6 features on IE 11, with varying success. | -| ๐ŸŸฉ | ๐ŸŒ | Others | iD should run without issue on any desktop browser implementing modern web standards. | -| ๐ŸŸ  | ๐Ÿ“ฑ | Mobile browsers | iD has not yet been fully optimized for mobile devices, but some editing is usually possible. | +| โœ… | ![chrome logo] | [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) | | +| โœ…* | ![firefox logo] | [Firefox](https://en.wikipedia.org/wiki/Firefox) | \*Minor known issues | [#7132] | +| โœ… | ![safari logo] | [Safari](https://en.wikipedia.org/wiki/Safari_(web_browser)) | | +| ๐ŸŸฉ | ![opera logo] | [Opera](https://en.wikipedia.org/wiki/Opera_(web_browser)) | | +| ๐ŸŸฉ | ![edge logo] | [Edge](https://en.wikipedia.org/wiki/Microsoft_Edge) | | +| ๐ŸŸ  | ![ie logo] | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) | IE has been discontinued, but [IE 11 is still maintained](https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge). iD polyfills ES6 features on IE 11, with varying success | +| ๐ŸŸฉ | ๐ŸŒ | Others | iD should run without issue on any desktop browser implementing [modern web standards](https://www.w3.org/standards/) | +| ๐ŸŸ  | ๐Ÿ“ฑ | [Mobile browsers](https://en.wikipedia.org/wiki/Mobile_browser) | iD has not yet been fully optimized for mobile devices, but some editing is usually possible | [safari logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Safari_browser_logo.svg/30px-Safari_browser_logo.svg.png [opera logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Opera_browser_logo_2013_vector.svg/30px-Opera_browser_logo_2013_vector.svg.png @@ -71,8 +71,8 @@ such as opening the edit menu via long-pressing instead of right-clicking. | โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | | โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | | ๐ŸŸ  | ๐Ÿ–ฑ | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible | -| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Move and rotate aren't possible | -| ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Move, rotate, and multiselection aren't possible | +| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | +| ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features | | ๐Ÿคท | โœ๏ธ๐Ÿ”ฒ | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | | | ๐Ÿคท | ๐ŸŽฎ | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | | | ๐Ÿคท | ๐Ÿ—ฃ | [Voice](https://en.wikipedia.org/wiki/Voice_user_interface) | Tools like [Voice Control on macOS](https://support.apple.com/en-us/HT210539) and [Windows Speech Recognition](https://en.wikipedia.org/wiki/Windows_Speech_Recognition) allow navigating webpages with voice commands to some degree | @@ -82,23 +82,33 @@ such as opening the edit menu via long-pressing instead of right-clicking. This table details iD's support for specific classes of input devices. -"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. But unlike the "setups" table above, a given device is not necessarily expected to perform all of iD's functions. +"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. But unlike the "Setups" table above, a given device is not necessarily expected to perform all of iD's functions. It's impractical to ensure every single input device works as expected, so the table only reflects the support status to the best of our knowledge. -| | Input Device | Notes | Issues | -|---|---|---|---| -| โœ… | Single-button mouse | E.g. [Chester Mouse](https://duckduckgo.com/?q=chester+one+button+mouse&iar=images&iax=images&ia=images). Primary click (e.g. left-click) can be used for all pointer interactions. A long-click on map features opens the edit menu | -| โœ… | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser | -| โœ… | Multi-touch mouse | E.g. [Magic Mouse](https://en.wikipedia.org/wiki/Magic_Mouse). 2D scrolling in the map is treated as panning, not zooming | -| ๐ŸŸ  | Vertical [scroll wheel](https://en.wikipedia.org/wiki/Scroll_wheel) | Should zoom the map in and out | [#5550](https://github.com/openstreetmap/iD/issues/5550) | -| โŒ | Horizontal scroll wheel | Currently does nothing in the map | [#7134](https://github.com/openstreetmap/iD/issues/7134) | -| ๐Ÿคท | Scroll ball | E.g. in [Apple Mighty Mouse](https://en.wikipedia.org/wiki/Apple_Mighty_Mouse) | -| ๐ŸŸฉ | Trackball | | -| ๐ŸŸฉ | Trackpad | | -| โœ… | Multi-touch trackpad | E.g. [Magic Trackpad](https://en.wikipedia.org/wiki/Magic_Trackpad). Pinch-to-zoom and scroll-to-pan are supported in the map | -| ๐ŸŸฉ | Pointing stick | | -| โœ… | Keyboard | | +| | | Input Device | Notes | Issues | +|---|---|---|---|---| +| โœ… | ![apple adb mouse] | Single-button mouse | Primary click (e.g. left-click) can be used for all pointer interactions. Long-clicking on map features opens the edit menu | +| โœ… | ![ibm mouse] | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser | +| โœ… | [![magic mouse]](https://en.wikipedia.org/wiki/Magic_Mouse) | Multi-touch mouse | 2D scrolling in the map is treated as panning, not zooming | +| ๐ŸŸ  | ![vertical scroll wheel] | Vertical [scroll wheel](https://en.wikipedia.org/wiki/Scroll_wheel) | Should zoom the map in and out | [#5550](https://github.com/openstreetmap/iD/issues/5550) | +| โŒ | | Horizontal scroll wheel | Currently does nothing in the map | [#7134](https://github.com/openstreetmap/iD/issues/7134) | +| ๐Ÿคท | [![apple mighty mouse]](https://en.wikipedia.org/wiki/Apple_Mighty_Mouse) | Scroll ball | | +| ๐ŸŸฉ | ๐Ÿ–ฒ | Trackball | | +| ๐ŸŸฉ | ![touchpad] | Trackpad | | +| โœ… | [![macbook trackpad]](https://en.wikipedia.org/wiki/Magic_Trackpad) | Multi-touch trackpad | Pinch-to-zoom and scroll-to-pan are supported in the map | +| ๐ŸŸฉ | ![pointing stick] | Pointing stick | | +| โœ… | โŒจ๏ธ | Keyboard | | + +[ibm mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/62/Myszka_IBM.jpg/40px-Myszka_IBM.jpg +[apple adb mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Apple-ADB-mouse.jpg/70px-Apple-ADB-mouse.jpg +[apple mighty mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Apple_Mighty_Mouse_top_viewo.jpg/35px-Apple_Mighty_Mouse_top_viewo.jpg +[vertical scroll wheel]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Razer_DeathAdder_2013_Edition-mouse_wheel_PNr%C2%B00405.jpg/50px-Razer_DeathAdder_2013_Edition-mouse_wheel_PNr%C2%B00405.jpg +[magic mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Magic_Mouse.jpg/70px-Magic_Mouse.jpg +[pointing stick]: https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Mouse_pointing_stick.jpeg/70px-Mouse_pointing_stick.jpeg +[touchpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Touchpad_F3JA.jpg/70px-Touchpad_F3JA.jpg +[macbook trackpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/MacBook_Pro%27s_trackpad.JPG/70px-MacBook_Pro%27s_trackpad.JPG + ## Language Support @@ -117,6 +127,7 @@ for more info. | โœ… | Browser language preference | iD tries to use the language set in the browser | | โŒ | Base language fallback | E.g. if `pt_BR` is incomplete, `pt` should be tried before `en` | | โŒ | Custom fallback language | If the preferred language is incomplete, a user-specified one should be tried before `en` (e.g. `kk` โ†’ `ru`) | +| โŒ | [`lang` HTML attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) | Helps with text-to-speech, text formatting, and auto-transliteration, particularly when iD mixes strings from different languages | | โœ… | Locale URL parameters | `locale` and `rtl` can be used to manually set iD's locale preferences. See the [API](API.md#url-parameters) | | ๐ŸŸฉ | Right-to-left layouts | Used for languages like Hebrew and Arabic | From 2d77cac208c7f44b8b873dbbc778b4e2bf29b0c9 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Sat, 4 Jul 2020 21:56:22 -0400 Subject: [PATCH 03/22] Update ACCESSIBILITY.md Add label to icon table columns --- ACCESSIBILITY.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index c5a55242e..fab7ebd9e 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -28,7 +28,7 @@ should fallback gracefully without breaking other aspects of the app. This table covers high-level compatibility, with individual features to be detailed elsewhere in this document. -| | | Browser | Notes | Issues | +| | Icon | Browser | Notes | Issues | |---|---|---|---|---| | โœ… | ![chrome logo] | [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) | | | โœ…* | ![firefox logo] | [Firefox](https://en.wikipedia.org/wiki/Firefox) | \*Minor known issues | [#7132] | @@ -66,7 +66,7 @@ highest-functioning setup (generally mouse and keyboard). Certain functions may be accessed differently on different setups, such as opening the edit menu via long-pressing instead of right-clicking. -| | | Input Setup | Notes | +| | Icon | Input Setup | Notes | |---|---|---|---| | โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | | โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | @@ -86,7 +86,7 @@ This table details iD's support for specific classes of input devices. It's impractical to ensure every single input device works as expected, so the table only reflects the support status to the best of our knowledge. -| | | Input Device | Notes | Issues | +| | Icon | Input Device | Notes | Issues | |---|---|---|---|---| | โœ… | ![apple adb mouse] | Single-button mouse | Primary click (e.g. left-click) can be used for all pointer interactions. Long-clicking on map features opens the edit menu | | โœ… | ![ibm mouse] | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser | From 3d4703b60cd82ac2cd031d730eb858711b6b9763 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 6 Jul 2020 15:28:25 -0400 Subject: [PATCH 04/22] Fix various CSS issues --- css/80_app.css | 44 +++++++++++++++++++++------------ modules/ui/commit.js | 4 +-- modules/ui/data_editor.js | 2 +- modules/ui/entity_editor.js | 4 +-- modules/ui/improveOSM_editor.js | 2 +- modules/ui/intro/navigation.js | 8 +++--- modules/ui/intro/point.js | 2 +- modules/ui/keepRight_editor.js | 2 +- modules/ui/note_editor.js | 2 +- modules/ui/osmose_editor.js | 2 +- modules/ui/success.js | 12 ++++----- 11 files changed, 48 insertions(+), 36 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 08dfca96d..908729b02 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -507,6 +507,14 @@ button[disabled].action { .ideditor[dir='rtl'] .top-toolbar .toolbar-item:last-child .item-content { margin-left: 10px; } +.ideditor[dir='ltr'] .top-toolbar .toolbar-item:last-child .item-label, +.ideditor[dir='rtl'] .top-toolbar .toolbar-item:first-child .item-label { + padding-right: 5px; +} +.ideditor[dir='ltr'] .top-toolbar .toolbar-item:first-child .item-label, +.ideditor[dir='rtl'] .top-toolbar .toolbar-item:last-child .item-label { + padding-left: 5px; +} .top-toolbar .toolbar-item .item-label { text-align: center; font-size: 11px; @@ -623,15 +631,17 @@ button.add-note svg.icon { border-bottom: 1px solid #ccc; height: 60px; position: relative; + display: flex; + align-items: center; + justify-content: center; } .header h3 { text-align: center; margin-bottom: 0; - white-space: nowrap; text-overflow: ellipsis; overflow: hidden; - padding: 20px; + padding: 0; } .header button, @@ -648,20 +658,14 @@ button.add-note svg.icon { } .field-help-title button.close, -.sidebar-component .header button.data-editor-close, -.sidebar-component .header button.note-editor-close, -.sidebar-component .header button.qa-editor-close, -.entity-editor-pane .header button.preset-close, +.sidebar .header button.close, .preset-list-pane .header button.preset-choose { position: absolute; right: 0; top: 0; } .ideditor[dir='rtl'] .field-help-title button.close, -.ideditor[dir='rtl'] .sidebar-component .header button.data-editor-close, -.ideditor[dir='rtl'] .sidebar-component .header button.note-editor-close, -.ideditor[dir='rtl'] .sidebar-component .header button.qa-editor-close, -.ideditor[dir='rtl'] .entity-editor-pane .header button.preset-close, +.ideditor[dir='rtl'] .sidebar .header button.close, .ideditor[dir='rtl'] .preset-list-pane .header button.preset-choose { left: 0; right: auto; @@ -719,6 +723,10 @@ button.add-note svg.icon { justify-content: space-between; } +.header-block { + display: flex; + align-items: center; +} .header-block-outer { width: 20%; } @@ -726,6 +734,7 @@ button.add-note svg.icon { .header-block-close { display: flex; justify-content: flex-end; + height: 100%; } /* Hide/Toggle collapsable sections (aka Disclosure) @@ -1373,12 +1382,17 @@ a.hide-toggle { overflow: hidden; } .field-label .label-text { + overflow: hidden; + text-overflow: ellipsis; flex: 1 1 auto; padding: 5px 0 5px 10px; } .ideditor[dir='rtl'] .field-label .label-text { padding: 5px 10px 5px 0; } +.field-label .label-text span { + white-space: nowrap; +} .label-text .label-textannotation svg.icon { margin: 0 8px; @@ -4672,16 +4686,12 @@ img.tile-debug { padding: 20px; border-bottom: 1px solid #ccc; } -.modal-section p:not(:last-of-type), -.modal-section ul { +.modal-section p:not(:last-of-type) { padding-bottom: 20px; } .modal-section h4 { padding-bottom: 0; } -.modal-section.header h3 { - padding: 0; -} .modal-section.buttons { text-align: center; } @@ -4701,7 +4711,6 @@ img.tile-debug { display: flex; flex-wrap: wrap; justify-content: space-around; - margin-bottom: 30px; } .save-section .buttons .action, @@ -4966,6 +4975,9 @@ svg.mouseclick use.right { .settings-custom-background .instructions-template p { margin-bottom: 0; } +.settings-custom-background .instructions-template ul { + padding-bottom: 20px; +} .settings-custom-background .instructions-template ul li { list-style-type: disc; list-style-position: inside; diff --git a/modules/ui/commit.js b/modules/ui/commit.js index a0f494952..01271385a 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -270,7 +270,7 @@ export function uiCommit(context) { saveSection = saveSection.enter() .append('div') - .attr('class','modal-section save-section fillL cf') + .attr('class','modal-section save-section fillL') .merge(saveSection); var prose = saveSection.selectAll('.commit-info') @@ -355,7 +355,7 @@ export function uiCommit(context) { // enter var buttonEnter = buttonSection.enter() .append('div') - .attr('class', 'buttons fillL cf'); + .attr('class', 'buttons fillL'); buttonEnter .append('button') diff --git a/modules/ui/data_editor.js b/modules/ui/data_editor.js index df5370c24..7048f04a2 100644 --- a/modules/ui/data_editor.js +++ b/modules/ui/data_editor.js @@ -25,7 +25,7 @@ export function uiDataEditor(context) { headerEnter .append('button') - .attr('class', 'fr data-editor-close') + .attr('class', 'close') .on('click', function() { context.enter(modeBrowse(context)); }) diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index e18387fda..9cb24141e 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -45,12 +45,12 @@ export function uiEntityEditor(context) { headerEnter .append('button') - .attr('class', 'fl preset-reset preset-choose') + .attr('class', 'preset-reset preset-choose') .call(svgIcon((localizer.textDirection() === 'rtl') ? '#iD-icon-forward' : '#iD-icon-backward')); headerEnter .append('button') - .attr('class', 'fr preset-close') + .attr('class', 'close') .on('click', function() { context.enter(modeBrowse(context)); }) .call(svgIcon(_modified ? '#iD-icon-apply' : '#iD-icon-close')); diff --git a/modules/ui/improveOSM_editor.js b/modules/ui/improveOSM_editor.js index 784a6b815..932f62f74 100644 --- a/modules/ui/improveOSM_editor.js +++ b/modules/ui/improveOSM_editor.js @@ -30,7 +30,7 @@ export function uiImproveOsmEditor(context) { headerEnter .append('button') - .attr('class', 'fr qa-editor-close') + .attr('class', 'close') .on('click', () => context.enter(modeBrowse(context))) .call(svgIcon('#iD-icon-close')); diff --git a/modules/ui/intro/navigation.js b/modules/ui/intro/navigation.js index d34a3b69d..6b9e20b6b 100644 --- a/modules/ui/intro/navigation.js +++ b/modules/ui/intro/navigation.js @@ -356,7 +356,7 @@ export function uiIntroNavigation(context, reveal) { function closeTownHall() { if (!isTownHallSelected()) return clickTownHall(); - var selector = '.entity-editor-pane button.preset-close svg use'; + var selector = '.entity-editor-pane button.close svg use'; var href = d3_select(selector).attr('href') || '#iD-icon-close'; reveal('.entity-editor-pane', @@ -369,7 +369,7 @@ export function uiIntroNavigation(context, reveal) { context.history().on('change.intro', function() { // update the close icon in the tooltip if the user edits something. - var selector = '.entity-editor-pane button.preset-close svg use'; + var selector = '.entity-editor-pane button.close svg use'; var href = d3_select(selector).attr('href') || '#iD-icon-close'; reveal('.entity-editor-pane', @@ -492,7 +492,7 @@ export function uiIntroNavigation(context, reveal) { function editorStreet() { - var selector = '.entity-editor-pane button.preset-close svg use'; + var selector = '.entity-editor-pane button.close svg use'; var href = d3_select(selector).attr('href') || '#iD-icon-close'; reveal('.entity-editor-pane', @@ -509,7 +509,7 @@ export function uiIntroNavigation(context, reveal) { context.history().on('change.intro', function() { // update the close icon in the tooltip if the user edits something. - var selector = '.entity-editor-pane button.preset-close svg use'; + var selector = '.entity-editor-pane button.close svg use'; var href = d3_select(selector).attr('href') || '#iD-icon-close'; reveal('.entity-editor-pane', diff --git a/modules/ui/intro/point.js b/modules/ui/intro/point.js index a5ddcae03..a10c96072 100644 --- a/modules/ui/intro/point.js +++ b/modules/ui/intro/point.js @@ -261,7 +261,7 @@ export function uiIntroPoint(context, reveal) { // reset pane, in case user happened to change it.. context.container().select('.inspector-wrap .panewrap').style('right', '0%'); - var selector = '.entity-editor-pane button.preset-close svg use'; + var selector = '.entity-editor-pane button.close svg use'; var href = d3_select(selector).attr('href') || '#iD-icon-close'; context.on('exit.intro', function() { diff --git a/modules/ui/keepRight_editor.js b/modules/ui/keepRight_editor.js index 4145d98aa..1cf31797e 100644 --- a/modules/ui/keepRight_editor.js +++ b/modules/ui/keepRight_editor.js @@ -29,7 +29,7 @@ export function uiKeepRightEditor(context) { headerEnter .append('button') - .attr('class', 'fr qa-editor-close') + .attr('class', 'close') .on('click', () => context.enter(modeBrowse(context))) .call(svgIcon('#iD-icon-close')); diff --git a/modules/ui/note_editor.js b/modules/ui/note_editor.js index f16a71339..c49dcdfaa 100644 --- a/modules/ui/note_editor.js +++ b/modules/ui/note_editor.js @@ -46,7 +46,7 @@ export function uiNoteEditor(context) { headerEnter .append('button') - .attr('class', 'fr note-editor-close') + .attr('class', 'close') .on('click', function() { context.enter(modeBrowse(context)); }) diff --git a/modules/ui/osmose_editor.js b/modules/ui/osmose_editor.js index 84c36bec1..6423d23c1 100644 --- a/modules/ui/osmose_editor.js +++ b/modules/ui/osmose_editor.js @@ -29,7 +29,7 @@ export function uiOsmoseEditor(context) { headerEnter .append('button') - .attr('class', 'fr qa-editor-close') + .attr('class', 'close') .on('click', () => context.enter(modeBrowse(context))) .call(svgIcon('#iD-icon-close')); diff --git a/modules/ui/success.js b/modules/ui/success.js index f3b62160b..46454d7e2 100644 --- a/modules/ui/success.js +++ b/modules/ui/success.js @@ -72,16 +72,16 @@ export function uiSuccess(context) { .append('div') .attr('class', 'header fillL'); - header - .append('button') - .attr('class', 'fr') - .on('click', () => dispatch.call('cancel')) - .call(svgIcon('#iD-icon-close')); - header .append('h3') .text(t('success.just_edited')); + header + .append('button') + .attr('class', 'close') + .on('click', () => dispatch.call('cancel')) + .call(svgIcon('#iD-icon-close')); + let body = selection .append('div') .attr('class', 'body save-success fillL'); From 4a858574571c9adec399bb4323b75e009f7e44f7 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 6 Jul 2020 15:48:04 -0400 Subject: [PATCH 05/22] Fix issue where the entity editor wouldn't be loaded if skipping preset selection for new features --- modules/ui/inspector.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ui/inspector.js b/modules/ui/inspector.js index 4362d09a0..d35dc0331 100644 --- a/modules/ui/inspector.js +++ b/modules/ui/inspector.js @@ -25,6 +25,7 @@ export function uiInspector(context) { .on('cancel', function() { wrap.transition() .styleTween('right', function() { return d3_interpolate('-100%', '0%'); }); + editorPane.call(entityEditor); }); entityEditor From 60a0856d1234d87429acd4352ecbde655c821a62 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 6 Jul 2020 16:07:51 -0400 Subject: [PATCH 06/22] Fix issue where preset list search would get autofocus unexpectedly --- modules/modes/select.js | 2 ++ modules/ui/inspector.js | 4 ++-- modules/ui/sidebar.js | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/modes/select.js b/modules/modes/select.js index e595e0178..440a6416e 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -487,6 +487,8 @@ export function modeSelect(context, selectedIDs) { mode.exit = function() { + _newFeature = false; + _operations.forEach(function(operation) { if (operation.behavior) { context.uninstall(operation.behavior); diff --git a/modules/ui/inspector.js b/modules/ui/inspector.js index d35dc0331..2dc6825f8 100644 --- a/modules/ui/inspector.js +++ b/modules/ui/inspector.js @@ -17,7 +17,7 @@ export function uiInspector(context) { var _newFeature = false; - function inspector(selection, newFeature) { + function inspector(selection) { presetList .entityIDs(_entityIDs) .autofocus(_newFeature) @@ -67,7 +67,7 @@ export function uiInspector(context) { if (entity.hasNonGeometryTags()) return false; // prompt to select preset if feature is new and untagged - if (newFeature) return true; + if (_newFeature) return true; // all existing features except vertices should default to inspector if (entity.geometry(context.graph()) !== 'vertex') return false; diff --git a/modules/ui/sidebar.js b/modules/ui/sidebar.js index af3ba323b..0f87ceecb 100644 --- a/modules/ui/sidebar.js +++ b/modules/ui/sidebar.js @@ -238,7 +238,8 @@ export function uiSidebar(context) { if (!inspector.entityIDs() || !utilArrayIdentical(inspector.entityIDs(), [datum.id]) || inspector.state() !== 'hover') { inspector .state('hover') - .entityIDs([datum.id]); + .entityIDs([datum.id]) + .newFeature(false); inspectorWrap .call(inspector); @@ -300,7 +301,7 @@ export function uiSidebar(context) { .newFeature(newFeature); inspectorWrap - .call(inspector, newFeature); + .call(inspector); } } else { From 5491163616b82381218babf28cebc08e8205a122 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 6 Jul 2020 16:31:11 -0400 Subject: [PATCH 07/22] Remove hover upon pointercancel --- modules/behavior/hover.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/behavior/hover.js b/modules/behavior/hover.js index 5be06461a..4f67a11fd 100644 --- a/modules/behavior/hover.js +++ b/modules/behavior/hover.js @@ -78,7 +78,7 @@ export function behaviorHover(context) { .on(_pointerPrefix + 'down.hover', pointerover); d3_select(window) - .on(_pointerPrefix + 'up.hover', pointerout, true) + .on(_pointerPrefix + 'up.hover pointercancel.hover', pointerout, true) .on('keydown.hover', keydown) .on('keyup.hover', keyup); @@ -208,7 +208,7 @@ export function behaviorHover(context) { .on(_pointerPrefix + 'down.hover', null); d3_select(window) - .on(_pointerPrefix + 'up.hover', null, true) + .on(_pointerPrefix + 'up.hover pointercancel.hover', null, true) .on('keydown.hover', null) .on('keyup.hover', null); }; From 919486527fea60f19c85b32366d0fb1793a1e93b Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 6 Jul 2020 17:34:32 -0400 Subject: [PATCH 08/22] Support Safari 13.1 system fonts Use standard styling for `code` elements in qa details --- css/80_app.css | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 908729b02..d4fc664cf 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -16,7 +16,7 @@ position: relative; z-index: 0; - font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont, + font: normal 12px/1.6667 ui-sans-serif, "-apple-system", BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial", sans-serif; @@ -147,8 +147,8 @@ kbd { } code { - font-family: monospace, monospace; - background: #eee; + font-family: ui-monospace, monospace, monospace; + background: rgba(174, 174, 174, 0.25); padding: 1px 2px; } @@ -2813,14 +2813,6 @@ input.key-trap { .qa-details-subsection:empty { display: none; } -.qa-details-container code { - padding: .2em .4em; - margin: 0; - font-size: 85%; - font-family: monospace; - background-color: rgba(27,31,35,.05); - border-radius: 3px; -} .note-save .new-comment-input, .qa-save .new-comment-input { From 1f7374ce0c6a2bb7140e3e993eeb59f023339dd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2020 05:29:17 +0000 Subject: [PATCH 09/22] Bump rollup from 2.18.2 to 2.20.0 Bumps [rollup](https://github.com/rollup/rollup) from 2.18.2 to 2.20.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.18.2...v2.20.0) Signed-off-by: dependabot[bot] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bf550ad0..e3fbd6a8e 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "postcss": "^7.0.27", "postcss-selector-prepend": "^0.5.0", "request": "^2.88.0", - "rollup": "~2.18.0", + "rollup": "~2.20.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-progress": "^1.1.1", "rollup-plugin-visualizer": "~4.0.4", From fad5577ada8f2d33ca4dbf36c9c24440f791b38f Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 09:52:44 -0400 Subject: [PATCH 10/22] Deprecate various `toilets:type` tags --- data/deprecated.json | 16 ++++++++++++++++ data/taginfo.json | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/data/deprecated.json b/data/deprecated.json index 84f806ded..df3f1941e 100644 --- a/data/deprecated.json +++ b/data/deprecated.json @@ -1390,6 +1390,22 @@ "old": {"toilets:disposal": "pit_latrine"}, "replace": {"toilets:disposal": "pitlatrine"} }, + { + "old": {"toilets:type": "flush"}, + "replace": {"toilets:disposal": "flush"} + }, + { + "old": {"toilets:type": "pit"}, + "replace": {"toilets:disposal": "pitlatrine"} + }, + { + "old": {"toilets:type": "pitlatrine"}, + "replace": {"toilets:disposal": "pitlatrine"} + }, + { + "old": {"toilets:type": "pit latrine"}, + "replace": {"toilets:disposal": "pitlatrine"} + }, { "old": {"tourism": "bed_and_breakfast"}, "replace": {"tourism": "guest_house", "guest_house": "bed_and_breakfast"} diff --git a/data/taginfo.json b/data/taginfo.json index 5b94a2cdf..aa63944fd 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -2314,6 +2314,10 @@ {"key": "TODO", "description": "๐Ÿ„ณ โžœ fixme=*"}, {"key": "toilets:disposal", "value": "longdrop", "description": "๐Ÿ„ณ โžœ toilets:disposal=pitlatrine"}, {"key": "toilets:disposal", "value": "pit_latrine", "description": "๐Ÿ„ณ โžœ toilets:disposal=pitlatrine"}, + {"key": "toilets:type", "value": "flush", "description": "๐Ÿ„ณ โžœ toilets:disposal=flush"}, + {"key": "toilets:type", "value": "pit", "description": "๐Ÿ„ณ โžœ toilets:disposal=pitlatrine"}, + {"key": "toilets:type", "value": "pitlatrine", "description": "๐Ÿ„ณ โžœ toilets:disposal=pitlatrine"}, + {"key": "toilets:type", "value": "pit latrine", "description": "๐Ÿ„ณ โžœ toilets:disposal=pitlatrine"}, {"key": "tourism", "value": "bed_and_breakfast", "description": "๐Ÿ„ณ โžœ tourism=guest_house + guest_house=bed_and_breakfast"}, {"key": "tower:type", "value": "power", "description": "๐Ÿ„ณ โžœ power=tower"}, {"key": "tower:type", "value": "anchor", "description": "๐Ÿ„ณ โžœ line_attachment=anchor"}, From 28e9895d04e781c6dd376811a4763351ea8beb61 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 12:33:24 -0400 Subject: [PATCH 11/22] Update ACCESSIBILITY.md Start vision and hearing accessibility sections --- ACCESSIBILITY.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index fab7ebd9e..97c810a22 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -18,6 +18,7 @@ Symbols used in this document: - โŒ No appreciable support - ๐Ÿคท Unknown support, none is assumed + ## Browser Compatibility As a web app, iD's browser support is fundamental. The user experience should be @@ -48,6 +49,7 @@ elsewhere in this document. [#7132]: https://github.com/openstreetmap/iD/issues/7132 + ## Input Device Support iD has traditionally assumed the mapper will be interacting via a mouse and keyboard, @@ -122,7 +124,7 @@ platform. Some languages have region-specific variants, such as Brazilian Portug Translators are typically volunteers. See the [translation guide](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating) for more info. -| | Localization Feature | Notes | +| | Localization Feature | Notes | |---|---|---| | โœ… | Browser language preference | iD tries to use the language set in the browser | | โŒ | Base language fallback | E.g. if `pt_BR` is incomplete, `pt` should be tried before `en` | @@ -137,7 +139,7 @@ The following table details which interface elements can adapt to the mapper's language preferences. This doesn't account for whether they've actually been translated to one or more languages. -| | Interface Element | Notes | Issues | +| | Interface Element | Notes | Issues | |---|---|---|---| | โœ… | Labels and descriptions | | | | โœ… | Help docs and walkthrough | | | @@ -161,6 +163,21 @@ listed here. Visit the [Transifex project page](https://www.transifex.com/openst to see the latest numbers. Typically a few languages (German, Spanish, Japaneseโ€ฆ) are kept close to 100% coverage, while most languages have less than 50% coverage. +## Vision Accessbility + +| | Vision-Access Feature | Notes | Issues | +|---|---|---|---| +| ๐Ÿคท | [Screen reader support](https://en.wikipedia.org/wiki/Screen_reader) | | | +| ๐ŸŸ  | [Browser zoom](https://support.mozilla.org/en-US/kb/accessibility-features-firefox-make-firefox-and-we#w_page-zoom) | Scrolling-to-pan the map may react oddly on some browsers | | +| ๐ŸŸ  | [Text-only browser zoom](https://support.mozilla.org/en-US/kb/accessibility-features-firefox-make-firefox-and-we#w_text-zoom) | Enlarged text can overflow containers that have fixed dimensions | | +| ๐ŸŸ  | [Don't rely on color alone](https://www.wuhcag.com/use-of-colour/) | Some classes of map data are indistinguishable except for their colors | | +| ๐Ÿคท | [High-contrast text colors](https://www.wuhcag.com/contrast-enhanced/) | | | +| โŒ | Dark mode | Many people find light-on-dark UIs easier to read under certain conditions | | + +## Hearing Accessibility + +iD itself currently has no audio, so hearing difficulties alone are not expected to impact usability. + --- _Further sections coming soonโ€ฆ_ From b3267e3a2af4cd906590fe8bc6977b9f0e27606e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 13:15:48 -0400 Subject: [PATCH 12/22] Remove unused string (re: #7762) --- data/core.yaml | 1 - dist/locales/en.json | 1 - 2 files changed, 2 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index cc4245c08..c21116464 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1218,7 +1218,6 @@ en: mapillary_map_features: title: "Map Features" tooltip: "Map features from Mapillary" - request_data: "Request Data" construction: flat: crosswalk_plain: plain crosswalk diff --git a/dist/locales/en.json b/dist/locales/en.json index a4a688c60..73afed62f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1537,7 +1537,6 @@ "mapillary_map_features": { "title": "Map Features", "tooltip": "Map features from Mapillary", - "request_data": "Request Data", "construction": { "flat": { "crosswalk_plain": "plain crosswalk" From dff6ee01dc67c1bbda939e0834a5a760a233f3df Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 13:17:47 -0400 Subject: [PATCH 13/22] Add additional check for malformed GeoJSON data --- modules/svg/data.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/svg/data.js b/modules/svg/data.js index c18f9215f..94abf00d5 100644 --- a/modules/svg/data.js +++ b/modules/svg/data.js @@ -500,10 +500,13 @@ export function svgData(projection, context, dispatch) { var map = context.map(); var viewport = map.trimmedExtent().polygon(); var coords = features.reduce(function(coords, feature) { - var c = feature.geometry.coordinates; + var geom = feature.geometry; + if (!geom) return coords; + + var c = geom.coordinates; /* eslint-disable no-fallthrough */ - switch (feature.geometry.type) { + switch (geom.type) { case 'Point': c = [c]; case 'MultiPoint': From 09a20bc809e98d3649a1246d1bcc53a1bcf6cbd6 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 13:52:55 -0400 Subject: [PATCH 14/22] Fix issue where panning the bing streetside photo viewer wouldn't update the bubble cone in the map --- modules/services/streetside.js | 40 +++++++++++++++++----------------- modules/svg/streetside.js | 4 ++-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/services/streetside.js b/modules/services/streetside.js index 3c81d218b..04ee1d41a 100644 --- a/modules/services/streetside.js +++ b/modules/services/streetside.js @@ -469,26 +469,6 @@ export default { options.scenes[sceneID] = _sceneOptions; _pannellumViewer = window.pannellum.viewer('ideditor-viewer-streetside', options); - - var pointerPrefix = 'PointerEvent' in window ? 'pointer' : 'mouse'; - - _pannellumViewer - .on(pointerPrefix + 'down', () => { - d3_select(window) - .on(pointerPrefix + 'move.pannellum', () => { dispatch.call('viewerChanged'); }); - }) - .on(pointerPrefix + 'up', () => { - d3_select(window) - .on(pointerPrefix + 'move.pannellum', null); - - // continue dispatching events for a few seconds, in case viewer has inertia. - let t = d3_timer(elapsed => { - dispatch.call('viewerChanged'); - if (elapsed > 2000) { - t.stop(); - } - }); - }); }, @@ -498,6 +478,8 @@ export default { loadViewer: function(context) { let that = this; + let pointerPrefix = 'PointerEvent' in window ? 'pointer' : 'mouse'; + // create ms-wrapper, a photo wrapper class let wrap = context.container().select('.photoviewer').selectAll('.ms-wrapper') .data([0]); @@ -513,6 +495,24 @@ export default { wrapEnter .append('div') .attr('id', 'ideditor-viewer-streetside') + .on(pointerPrefix + 'down.streetside', () => { + d3_select(window) + .on(pointerPrefix + 'move.streetside', () => { + dispatch.call('viewerChanged'); + }, true); + }) + .on(pointerPrefix + 'up.streetside pointercancel.streetside', () => { + d3_select(window) + .on(pointerPrefix + 'move.streetside', null); + + // continue dispatching events for a few seconds, in case viewer has inertia. + let t = d3_timer(elapsed => { + dispatch.call('viewerChanged'); + if (elapsed > 2000) { + t.stop(); + } + }); + }) .append('div') .attr('class', 'photo-attribution fillD'); diff --git a/modules/svg/streetside.js b/modules/svg/streetside.js index 023d333e0..5d489e9aa 100644 --- a/modules/svg/streetside.js +++ b/modules/svg/streetside.js @@ -30,8 +30,8 @@ export function svgStreetside(projection, context, dispatch) { if (services.streetside && !_streetside) { _streetside = services.streetside; _streetside.event - .on('viewerChanged', viewerChanged) - .on('loadedBubbles', throttledRedraw); + .on('viewerChanged.svgStreetside', viewerChanged) + .on('loadedBubbles.svgStreetside', throttledRedraw); } else if (!services.streetside && _streetside) { _streetside = null; } From 2f2264d463c120cf3fe8685bfdf0627660ada7e0 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 16:23:36 -0400 Subject: [PATCH 15/22] Update ACCESSIBILITY.md Add info about mobile browsers, more input devices, and audio feedback --- ACCESSIBILITY.md | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index 97c810a22..aeb7b85bc 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -32,13 +32,14 @@ elsewhere in this document. | | Icon | Browser | Notes | Issues | |---|---|---|---|---| | โœ… | ![chrome logo] | [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) | | -| โœ…* | ![firefox logo] | [Firefox](https://en.wikipedia.org/wiki/Firefox) | \*Minor known issues | [#7132] | +| โœ…* | ![firefox logo] | [Firefox](https://en.wikipedia.org/wiki/Firefox) | \*Minor known issues | [#7132](https://github.com/openstreetmap/iD/issues/7132) | | โœ… | ![safari logo] | [Safari](https://en.wikipedia.org/wiki/Safari_(web_browser)) | | | ๐ŸŸฉ | ![opera logo] | [Opera](https://en.wikipedia.org/wiki/Opera_(web_browser)) | | | ๐ŸŸฉ | ![edge logo] | [Edge](https://en.wikipedia.org/wiki/Microsoft_Edge) | | -| ๐ŸŸ  | ![ie logo] | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) | IE has been discontinued, but [IE 11 is still maintained](https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge). iD polyfills ES6 features on IE 11, with varying success | -| ๐ŸŸฉ | ๐ŸŒ | Others | iD should run without issue on any desktop browser implementing [modern web standards](https://www.w3.org/standards/) | -| ๐ŸŸ  | ๐Ÿ“ฑ | [Mobile browsers](https://en.wikipedia.org/wiki/Mobile_browser) | iD has not yet been fully optimized for mobile devices, but some editing is usually possible | +| ๐ŸŸ  | ![ie logo] | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) | IE has been discontinued, but [IE 11 is still maintained](https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge). iD [polyfills](https://en.wikipedia.org/wiki/Polyfill_(programming)) modern web features for IE 11 where possible, but full support should not be expected | +| โœ… | ๐Ÿ“ฑ | [iOS](https://en.wikipedia.org/wiki/IOS) browsers | All browsers on iOS (e.g. Safari, Chrome, Firefox, Edge) use the [WebKit](https://en.wikipedia.org/wiki/WebKit) engine and should thus have equivalent support | +| ๐ŸŸฉ | ๐Ÿ“ฑ | [Android](https://en.wikipedia.org/wiki/Android_(operating_system)) browsers | Browsers on Android can use their own engines, so support may vary, but there are currently no known issues | +| ๐ŸŸฉ | ๐ŸŒ | Others | iD should run on any browser implementing [modern web standards](https://www.w3.org/standards/). Hardware factors such as screen size may affect usability | [safari logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Safari_browser_logo.svg/30px-Safari_browser_logo.svg.png [opera logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Opera_browser_logo_2013_vector.svg/30px-Opera_browser_logo_2013_vector.svg.png @@ -47,8 +48,6 @@ elsewhere in this document. [edge logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Microsoft_Edge_logo_%282015%E2%80%932019%29.svg/30px-Microsoft_Edge_logo_%282015%E2%80%932019%29.svg.png [ie logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Internet_Explorer_10%2B11_logo.svg/30px-Internet_Explorer_10%2B11_logo.svg.png -[#7132]: https://github.com/openstreetmap/iD/issues/7132 - ## Input Device Support @@ -68,12 +67,12 @@ highest-functioning setup (generally mouse and keyboard). Certain functions may be accessed differently on different setups, such as opening the edit menu via long-pressing instead of right-clicking. -| | Icon | Input Setup | Notes | -|---|---|---|---| +| | Icon | Input Setup | Notes | Issues | +|---|---|---|---|---| | โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | | โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | | ๐ŸŸ  | ๐Ÿ–ฑ | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible | -| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | +| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) | | ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features | | ๐Ÿคท | โœ๏ธ๐Ÿ”ฒ | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | | | ๐Ÿคท | ๐ŸŽฎ | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | | @@ -90,17 +89,22 @@ It's impractical to ensure every single input device works as expected, so the t | | Icon | Input Device | Notes | Issues | |---|---|---|---|---| -| โœ… | ![apple adb mouse] | Single-button mouse | Primary click (e.g. left-click) can be used for all pointer interactions. Long-clicking on map features opens the edit menu | -| โœ… | ![ibm mouse] | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser | -| โœ… | [![magic mouse]](https://en.wikipedia.org/wiki/Magic_Mouse) | Multi-touch mouse | 2D scrolling in the map is treated as panning, not zooming | +| ๐ŸŸฉ | ![apple adb mouse] | Single-button [mouse](https://en.wikipedia.org/wiki/Computer_mouse) | Primary click (e.g. left-click) can be used for all pointer interactions. Long-clicking on map features opens the edit menu | +| ๐ŸŸฉ | ![ibm mouse] | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser | +| ๐ŸŸฉ | [![magic mouse]](https://en.wikipedia.org/wiki/Magic_Mouse) | Multi-touch mouse | 2D scrolling in the map is treated as panning, not zooming | | ๐ŸŸ  | ![vertical scroll wheel] | Vertical [scroll wheel](https://en.wikipedia.org/wiki/Scroll_wheel) | Should zoom the map in and out | [#5550](https://github.com/openstreetmap/iD/issues/5550) | | โŒ | | Horizontal scroll wheel | Currently does nothing in the map | [#7134](https://github.com/openstreetmap/iD/issues/7134) | -| ๐Ÿคท | [![apple mighty mouse]](https://en.wikipedia.org/wiki/Apple_Mighty_Mouse) | Scroll ball | | -| ๐ŸŸฉ | ๐Ÿ–ฒ | Trackball | | -| ๐ŸŸฉ | ![touchpad] | Trackpad | | -| โœ… | [![macbook trackpad]](https://en.wikipedia.org/wiki/Magic_Trackpad) | Multi-touch trackpad | Pinch-to-zoom and scroll-to-pan are supported in the map | -| ๐ŸŸฉ | ![pointing stick] | Pointing stick | | -| โœ… | โŒจ๏ธ | Keyboard | | +| ๐Ÿคท | [![apple mighty mouse]](https://en.wikipedia.org/wiki/Apple_Mighty_Mouse) | Scroll ball | Works like combined vertical/horizontal scroll wheels | +| ๐ŸŸฉ | ๐Ÿ–ฒ | [Trackball](https://en.wikipedia.org/wiki/Trackball) | | +| ๐ŸŸฉ | ![touchpad] | [Trackpad](https://en.wikipedia.org/wiki/Touchpad) | | +| ๐ŸŸฉ | [![macbook trackpad]](https://en.wikipedia.org/wiki/Magic_Trackpad) | Multi-touch trackpad | Pinch-to-zoom and scroll-to-pan are supported in the map | +| ๐ŸŸฉ | ![pointing stick] | [Pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) | | +| ๐ŸŸฉ | โŒจ๏ธ | [Keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | Any keyboard can be used, but certain functionality may require certain keys | +| ๐Ÿคท | | [Touch bar](https://www.imore.com/touch-bar) | Generic, browser-provided controls should be shown | +| ๐ŸŸฉ | | Multi-touch screen | | +| ๐ŸŸฉ | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) | Works like a single touch for tapping, dragging, scrolling, etc. | +| ๐Ÿคท | ๐Ÿ”ฒ | [Graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | | +| ๐Ÿคท | ๐ŸŽฎ | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | | [ibm mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/62/Myszka_IBM.jpg/40px-Myszka_IBM.jpg [apple adb mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Apple-ADB-mouse.jpg/70px-Apple-ADB-mouse.jpg @@ -173,6 +177,7 @@ are kept close to 100% coverage, while most languages have less than 50% coverag | ๐ŸŸ  | [Don't rely on color alone](https://www.wuhcag.com/use-of-colour/) | Some classes of map data are indistinguishable except for their colors | | | ๐Ÿคท | [High-contrast text colors](https://www.wuhcag.com/contrast-enhanced/) | | | | โŒ | Dark mode | Many people find light-on-dark UIs easier to read under certain conditions | | +| โŒ | Audio feedback | This would need to be easy to disable or even disabled by default | [#5821](https://github.com/openstreetmap/iD/issues/5821) | ## Hearing Accessibility From 0754b69c4cb7ee8387753a72c7787b38d8dfdf71 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 21:20:29 -0400 Subject: [PATCH 16/22] Update ACCESSIBILITY.md Add header icon emojis, section breaks, and mobile browser icons --- ACCESSIBILITY.md | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index aeb7b85bc..be0235115 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -18,8 +18,9 @@ Symbols used in this document: - โŒ No appreciable support - ๐Ÿคท Unknown support, none is assumed +
-## Browser Compatibility +## ๐Ÿ”— Browser Compatibility As a web app, iD's browser support is fundamental. The user experience should be as equivalent as possible across the latest versions of all modern browsers on all @@ -37,8 +38,8 @@ elsewhere in this document. | ๐ŸŸฉ | ![opera logo] | [Opera](https://en.wikipedia.org/wiki/Opera_(web_browser)) | | | ๐ŸŸฉ | ![edge logo] | [Edge](https://en.wikipedia.org/wiki/Microsoft_Edge) | | | ๐ŸŸ  | ![ie logo] | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) | IE has been discontinued, but [IE 11 is still maintained](https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge). iD [polyfills](https://en.wikipedia.org/wiki/Polyfill_(programming)) modern web features for IE 11 where possible, but full support should not be expected | -| โœ… | ๐Ÿ“ฑ | [iOS](https://en.wikipedia.org/wiki/IOS) browsers | All browsers on iOS (e.g. Safari, Chrome, Firefox, Edge) use the [WebKit](https://en.wikipedia.org/wiki/WebKit) engine and should thus have equivalent support | -| ๐ŸŸฉ | ๐Ÿ“ฑ | [Android](https://en.wikipedia.org/wiki/Android_(operating_system)) browsers | Browsers on Android can use their own engines, so support may vary, but there are currently no known issues | +| โœ… | ![webkit logo] | [iOS](https://en.wikipedia.org/wiki/IOS) browsers | All browsers on iOS (e.g. Safari, Chrome, Firefox, Edge) use the [WebKit](https://en.wikipedia.org/wiki/WebKit) engine and should thus have equivalent support | +| ๐ŸŸฉ | ![android logo] | [Android](https://en.wikipedia.org/wiki/Android_(operating_system)) browsers | Browsers on Android can use their own engines, so support may vary, but there are currently no known issues | | ๐ŸŸฉ | ๐ŸŒ | Others | iD should run on any browser implementing [modern web standards](https://www.w3.org/standards/). Hardware factors such as screen size may affect usability | [safari logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Safari_browser_logo.svg/30px-Safari_browser_logo.svg.png @@ -47,9 +48,12 @@ elsewhere in this document. [firefox logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Firefox_logo%2C_2019.svg/30px-Firefox_logo%2C_2019.svg.png [edge logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Microsoft_Edge_logo_%282015%E2%80%932019%29.svg/30px-Microsoft_Edge_logo_%282015%E2%80%932019%29.svg.png [ie logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Internet_Explorer_10%2B11_logo.svg/30px-Internet_Explorer_10%2B11_logo.svg.png +[webkit logo]: https://upload.wikimedia.org/wikipedia/en/thumb/b/be/WebKit_logo_(2015).svg/35px-WebKit_logo_(2015).svg.png +[android logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Android_robot.svg/28px-Android_robot.svg.png +
-## Input Device Support +## ๐Ÿ•น Input Device Support iD has traditionally assumed the mapper will be interacting via a mouse and keyboard, but realistically people want or need to use various other [input devices](https://en.wikipedia.org/wiki/Input_device). @@ -115,8 +119,9 @@ It's impractical to ensure every single input device works as expected, so the t [touchpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Touchpad_F3JA.jpg/70px-Touchpad_F3JA.jpg [macbook trackpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/MacBook_Pro%27s_trackpad.JPG/70px-MacBook_Pro%27s_trackpad.JPG +
-## Language Support +## ๐Ÿ“– Language Support English is the language of tags and relation roles in the OpenStreetMap database. It's also the source language of iD's interface, meaning English is the only language @@ -167,7 +172,9 @@ listed here. Visit the [Transifex project page](https://www.transifex.com/openst to see the latest numbers. Typically a few languages (German, Spanish, Japaneseโ€ฆ) are kept close to 100% coverage, while most languages have less than 50% coverage. -## Vision Accessbility +
+ +## ๐Ÿ‘ Vision Accessbility | | Vision-Access Feature | Notes | Issues | |---|---|---|---| @@ -179,10 +186,14 @@ are kept close to 100% coverage, while most languages have less than 50% coverag | โŒ | Dark mode | Many people find light-on-dark UIs easier to read under certain conditions | | | โŒ | Audio feedback | This would need to be easy to disable or even disabled by default | [#5821](https://github.com/openstreetmap/iD/issues/5821) | -## Hearing Accessibility +
+ +## ๐Ÿ‘‚ Hearing Accessibility iD itself currently has no audio, so hearing difficulties alone are not expected to impact usability. +
+ --- _Further sections coming soonโ€ฆ_ From 10d8273b73e5f886560a025bab33db8fc1af28be Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 7 Jul 2020 23:05:23 -0400 Subject: [PATCH 17/22] Update ACCESSIBILITY.md --- ACCESSIBILITY.md | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index be0235115..72e5c0e7e 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -53,7 +53,7 @@ elsewhere in this document.
-## ๐Ÿ•น Input Device Support +## ๐Ÿ•น Interaction Support iD has traditionally assumed the mapper will be interacting via a mouse and keyboard, but realistically people want or need to use various other [input devices](https://en.wikipedia.org/wiki/Input_device). @@ -61,9 +61,9 @@ but realistically people want or need to use various other [input devices](https iD relies on modern [pointer events](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events) for some interactions, so some devices may see degraded functionality on older browsers. -### Setups +### Input Setups -The following table lists iD's usability for different setups. A setup is where +This table lists iD's usability for different setups. A setup is where a mapper is using only the device(s) given in the row. A setup with "full support" offers functionality equivalent to that of the @@ -83,11 +83,11 @@ such as opening the edit menu via long-pressing instead of right-clicking. | ๐Ÿคท | ๐Ÿ—ฃ | [Voice](https://en.wikipedia.org/wiki/Voice_user_interface) | Tools like [Voice Control on macOS](https://support.apple.com/en-us/HT210539) and [Windows Speech Recognition](https://en.wikipedia.org/wiki/Windows_Speech_Recognition) allow navigating webpages with voice commands to some degree | | ๐Ÿคท | ๐Ÿ”˜ | [Switch](https://en.wikipedia.org/wiki/Switch_access) | Tools like [Switch Control on macOS](https://support.apple.com/en-us/HT202865) can theoretically replicate mouse and keyboard interactions in most apps | -### Devices +### Input Devices This table details iD's support for specific classes of input devices. -"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. But unlike the "Setups" table above, a given device is not necessarily expected to perform all of iD's functions. +"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. But unlike the input setups table, a given device is not necessarily expected to perform all of iD's functions. It's impractical to ensure every single input device works as expected, so the table only reflects the support status to the best of our knowledge. @@ -121,6 +121,28 @@ It's impractical to ensure every single input device works as expected, so the t
+## ๐Ÿ“Ÿ System Compatibility + +iD's hardware and software support mostly depends on the web browser and input devices. For instance, if a computer running Firefox is setup with a mouse and keyboard, it doesn't really matter to iD if the computer is a desktop Mac, laptop PC, Android tablet, or so on. But certain other aspects of the system can still affect iD's usability and functionality. + +| | Displays | Notes | +|---|---|---| +| โœ… | Large display | The map expands to fill the entire browser window | +| ๐ŸŸ  | Small display | iD is not optimized for smartphone-sized screens or smaller, but some editing is usually possible | +| โœ… | High [pixel density](https://en.wikipedia.org/wiki/Pixel_density) display | iD's vector graphics scale well to high-resolution screens (e.g. [Retina](https://en.wikipedia.org/wiki/Retina_display)) | +| ๐ŸŸ  | Low pixel density display | Some icons are not legible on low-res displays | +| โœ… | Multiple displays | iD responds accordingly when its browser window is moved between different types of external screens | + +| | Internet | Notes | +|---|---|---| +| ๐ŸŸ  | Slow connection | iD downloads a lot of data all throughout use, so slow connections can significantly slow down mapping | +| โœ… | Intermittent connection | Downloaded data can be edited during temporary connection losses. A banner message is displayed. Reconnection is attempted automatically and a "Retry" button is also provided | +| โŒ | Offline connection | iD isn't built for full offline use out of the box | +| โœ… | Mobile phone connection | A suitably fast, reliable phone network can be used for mapping, with the risk of iD gobbling up data allowances | +| ๐Ÿคท | [Tor](https://en.wikipedia.org/wiki/Tor_%28anonymity_network%29) connection | | + +
+ ## ๐Ÿ“– Language Support English is the language of tags and relation roles in the OpenStreetMap database. @@ -144,7 +166,7 @@ for more info. ### Translatability -The following table details which interface elements can adapt to the mapper's +This table details which interface elements can adapt to the mapper's language preferences. This doesn't account for whether they've actually been translated to one or more languages. From e2adcb06f73b09ac558449c988e60ddab5264e36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2020 05:06:46 +0000 Subject: [PATCH 18/22] Bump rollup from 2.20.0 to 2.21.0 Bumps [rollup](https://github.com/rollup/rollup) from 2.20.0 to 2.21.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.20.0...v2.21.0) Signed-off-by: dependabot[bot] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e3fbd6a8e..df5a29f02 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "postcss": "^7.0.27", "postcss-selector-prepend": "^0.5.0", "request": "^2.88.0", - "rollup": "~2.20.0", + "rollup": "~2.21.0", "rollup-plugin-includepaths": "~0.2.3", "rollup-plugin-progress": "^1.1.1", "rollup-plugin-visualizer": "~4.0.4", From 6fa8303e7db6db5453b1248ee43c9c4dea540903 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 8 Jul 2020 10:54:38 -0400 Subject: [PATCH 19/22] Update ACCESSIBILITY.md --- ACCESSIBILITY.md | 65 ++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index 72e5c0e7e..03afcda04 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -61,33 +61,11 @@ but realistically people want or need to use various other [input devices](https iD relies on modern [pointer events](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events) for some interactions, so some devices may see degraded functionality on older browsers. -### Input Setups - -This table lists iD's usability for different setups. A setup is where -a mapper is using only the device(s) given in the row. - -A setup with "full support" offers functionality equivalent to that of the -highest-functioning setup (generally mouse and keyboard). -Certain functions may be accessed differently on different setups, -such as opening the edit menu via long-pressing instead of right-clicking. - -| | Icon | Input Setup | Notes | Issues | -|---|---|---|---|---| -| โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | -| โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | -| ๐ŸŸ  | ๐Ÿ–ฑ | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible | -| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) | -| ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features | -| ๐Ÿคท | โœ๏ธ๐Ÿ”ฒ | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | | -| ๐Ÿคท | ๐ŸŽฎ | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | | -| ๐Ÿคท | ๐Ÿ—ฃ | [Voice](https://en.wikipedia.org/wiki/Voice_user_interface) | Tools like [Voice Control on macOS](https://support.apple.com/en-us/HT210539) and [Windows Speech Recognition](https://en.wikipedia.org/wiki/Windows_Speech_Recognition) allow navigating webpages with voice commands to some degree | -| ๐Ÿคท | ๐Ÿ”˜ | [Switch](https://en.wikipedia.org/wiki/Switch_access) | Tools like [Switch Control on macOS](https://support.apple.com/en-us/HT202865) can theoretically replicate mouse and keyboard interactions in most apps | - ### Input Devices This table details iD's support for specific classes of input devices. -"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. But unlike the input setups table, a given device is not necessarily expected to perform all of iD's functions. +"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. Though the given device is not necessarily expected to perform all of iD's functions. It's impractical to ensure every single input device works as expected, so the table only reflects the support status to the best of our knowledge. @@ -119,26 +97,53 @@ It's impractical to ensure every single input device works as expected, so the t [touchpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Touchpad_F3JA.jpg/70px-Touchpad_F3JA.jpg [macbook trackpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/MacBook_Pro%27s_trackpad.JPG/70px-MacBook_Pro%27s_trackpad.JPG +### Input Setups + +This table lists iD's usability for different setups. A setup is where +a mapper is using only the device(s) given in the row. + +A setup with "full support" offers functionality equivalent to that of the +highest-functioning setup (generally mouse and keyboard). +Certain functions may be accessed differently on different setups, +such as opening the edit menu via long-pressing instead of right-clicking. + +| | Icon | Input Setup | Notes | Issues | +|---|---|---|---|---| +| โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | +| โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | +| ๐ŸŸ  | ๐Ÿ–ฑ | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible | +| ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) | +| ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features | +| ๐Ÿคท | โœ๏ธ๐Ÿ”ฒ | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | | +| ๐Ÿคท | ๐ŸŽฎ | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | | +| ๐Ÿคท | ๐Ÿ—ฃ | [Voice](https://en.wikipedia.org/wiki/Voice_user_interface) | Tools like [Voice Control on macOS](https://support.apple.com/en-us/HT210539) and [Windows Speech Recognition](https://en.wikipedia.org/wiki/Windows_Speech_Recognition) allow navigating webpages with voice commands to some degree | +| ๐Ÿคท | ๐Ÿ”˜ | [Switch](https://en.wikipedia.org/wiki/Switch_access) | Tools like [Switch Control on macOS](https://support.apple.com/en-us/HT202865) can theoretically replicate mouse and keyboard interactions in most apps | +
## ๐Ÿ“Ÿ System Compatibility -iD's hardware and software support mostly depends on the web browser and input devices. For instance, if a computer running Firefox is setup with a mouse and keyboard, it doesn't really matter to iD if the computer is a desktop Mac, laptop PC, Android tablet, or so on. But certain other aspects of the system can still affect iD's usability and functionality. +iD is largely platform-independent, meaning it should work on any system that runs a modern web browser. However, certain hardware and software components can affect iD's usability and functionality. -| | Displays | Notes | +### Display Support + +| | Display | Notes | |---|---|---| -| โœ… | Large display | The map expands to fill the entire browser window | +| โŒ | No display | Non-graphical devices and "[headless](https://en.wikipedia.org/wiki/Headless_software)" use cases aren't supported. See also the [vision accessibility](#-vision-accessibility) section | | ๐ŸŸ  | Small display | iD is not optimized for smartphone-sized screens or smaller, but some editing is usually possible | -| โœ… | High [pixel density](https://en.wikipedia.org/wiki/Pixel_density) display | iD's vector graphics scale well to high-resolution screens (e.g. [Retina](https://en.wikipedia.org/wiki/Retina_display)) | +| โœ… | Large display | The map expands to fill the entire browser window | | ๐ŸŸ  | Low pixel density display | Some icons are not legible on low-res displays | +| โœ… | High [pixel density](https://en.wikipedia.org/wiki/Pixel_density) display | iD's vector graphics scale well to high-resolution screens (e.g. [Retina](https://en.wikipedia.org/wiki/Retina_display)) | | โœ… | Multiple displays | iD responds accordingly when its browser window is moved between different types of external screens | -| | Internet | Notes | +### Network Support + +| | Connection | Notes | |---|---|---| +| โŒ | No connection | iD isn't built for offline use out-of-the-box | | ๐ŸŸ  | Slow connection | iD downloads a lot of data all throughout use, so slow connections can significantly slow down mapping | | โœ… | Intermittent connection | Downloaded data can be edited during temporary connection losses. A banner message is displayed. Reconnection is attempted automatically and a "Retry" button is also provided | -| โŒ | Offline connection | iD isn't built for full offline use out of the box | -| โœ… | Mobile phone connection | A suitably fast, reliable phone network can be used for mapping, with the risk of iD gobbling up data allowances | +| โœ… | [Mobile phone connection](https://en.wikipedia.org/wiki/Cellular_network) | A suitably fast, reliable phone network can be used for mapping, with the risk of iD gobbling up data allowances | | ๐Ÿคท | [Tor](https://en.wikipedia.org/wiki/Tor_%28anonymity_network%29) connection | |
From 7a151e27d18cce0d9f9866256d1311cfbe05e045 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 8 Jul 2020 11:47:40 -0400 Subject: [PATCH 20/22] Update ACCESSIBILITY.md --- ACCESSIBILITY.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index 03afcda04..7e1c6361a 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -160,14 +160,16 @@ platform. Some languages have region-specific variants, such as Brazilian Portug Translators are typically volunteers. See the [translation guide](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating) for more info. -| | Localization Feature | Notes | +| | Multilingual Feature | Notes | |---|---|---| | โœ… | Browser language preference | iD tries to use the language set in the browser | | โŒ | Base language fallback | E.g. if `pt_BR` is incomplete, `pt` should be tried before `en` | | โŒ | Custom fallback language | If the preferred language is incomplete, a user-specified one should be tried before `en` (e.g. `kk` โ†’ `ru`) | | โŒ | [`lang` HTML attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) | Helps with text-to-speech, text formatting, and auto-transliteration, particularly when iD mixes strings from different languages | | โœ… | Locale URL parameters | `locale` and `rtl` can be used to manually set iD's locale preferences. See the [API](API.md#url-parameters) | -| ๐ŸŸฉ | Right-to-left layouts | Used for languages like Hebrew and Arabic | +| โŒ | Language selection in UI | The mapper should be able to view and change iD's language in the interface at any time. Useful for public computers with fixed browser languages | +| ๐ŸŸฉ | Right-to-left layouts | The [`dir` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) is properly set for languages like Hebrew and Arabic | +| ๐ŸŸ  | Label icons | Icons should accompany text labels to illustrate the meaning of untranslated terms | ### Translatability @@ -201,7 +203,7 @@ are kept close to 100% coverage, while most languages have less than 50% coverag
-## ๐Ÿ‘ Vision Accessbility +## ๐Ÿ‘ Vision Accessibility | | Vision-Access Feature | Notes | Issues | |---|---|---|---| From d52627aef717272b241bd520849648386b23fa3d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Thu, 9 Jul 2020 16:32:01 -0400 Subject: [PATCH 21/22] Update ACCESSIBILITY.md Add link --- ACCESSIBILITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index 7e1c6361a..02dfeff39 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -110,7 +110,7 @@ such as opening the edit menu via long-pressing instead of right-clicking. | | Icon | Input Setup | Notes | Issues | |---|---|---|---|---| | โœ… | ๐Ÿ–ฑโŒจ๏ธ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table | -| โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | +| โŒ | โŒจ๏ธ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | [#7770](https://github.com/openstreetmap/iD/issues/7770) | | ๐ŸŸ  | ๐Ÿ–ฑ | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible | | ๐ŸŸ  | ๐Ÿ– | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) | | ๐ŸŸ  | โœ๏ธ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features | From 7e3c91d691a684ec9dce8ef3966154d038486144 Mon Sep 17 00:00:00 2001 From: yasmin yazdi Date: Thu, 9 Jul 2020 21:53:26 -0500 Subject: [PATCH 22/22] added colour, material, and support to post_box preset --- data/presets/presets.json | 2 +- data/presets/presets/amenity/post_box.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 1d116f123..c9d393404 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -177,7 +177,7 @@ "amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["air_conditioning", "charge_fee", "email", "fax", "fee", "gnis/feature_id", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"}, "amenity/police": {"icon": "temaki-police_officer", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["badge", "constable", "constabulary", "cop", "detective", "fed", "law", "enforcement", "officer", "patrol"], "tags": {"amenity": "police"}, "name": "Police"}, "amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "opening_hours/covid19", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"}, - "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"}, + "amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "colour", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", "material", "support", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"}, "amenity/post_depot": {"icon": "fas-mail-bulk", "fields": ["name", "operator", "address", "building_area", "phone"], "moreFields": ["email", "fax", "gnis/feature_id", "opening_hours", "opening_hours/covid19", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["mail processing and distribution center", "post depot"], "tags": {"amenity": "post_depot"}, "name": "Post Sorting Office"}, "amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["brand", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"}, "amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"}, diff --git a/data/presets/presets/amenity/post_box.json b/data/presets/presets/amenity/post_box.json index 91c72f567..abd81baf7 100644 --- a/data/presets/presets/amenity/post_box.json +++ b/data/presets/presets/amenity/post_box.json @@ -9,12 +9,15 @@ "moreFields": [ "access_simple", "brand", + "colour", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", + "material", + "support", "wheelchair" ], "geometry": [