From OpenStreetMap Wiki
Jump to navigation Jump to search
Marked crossing
Proposal status: Inactive (inactive)
Proposed by: Nbolten
Tagging: crossing=marked
Applies to: way
Definition: A marked crossing

Draft started: 2018-06-20


This proposal regards using crossing=marked instead of crossing=uncontrolled or crossing=zebra to indicate whether a crossing has visible markings or not, solving long-running ambiguities, imprecision, and (hopefully) editor disagreements regarding the proper tag to use for a marked pedestrian crossing.

This proposal is part of, but does not depend on, a consolidated attempt to address fundamental problems with the values for pedestrian crossings (crossing=*).



crossing=* has already gone through several overhauls:

  • crossing=* initially used UK-specific values such as "zebra" or "pelican" in addition to "uncontrolled" and "traffic_signals". "uncontrolled" meant a crossing that did not have any pedestrian signals. crossing=zebra was popularly used in US tagging to describe any crossing that was marked regardless of the right-of-way implications that "zebra" has in the UK and countries with similar conventions.
  • The UK-specific terms were shortly deprecated as recommended values for crossing=*, and instead as values for crossing_ref=*, leaving these suggested values: crossing=uncontrolled/unmarked/traffic_signals/island/no.
  • Later discussions on the tagging list and wiki changed the meaning of crossing=uncontrolled to fill in the gap left behind regarding markings: "uncontrolled" now implied markings.

The changing meanings of crossing=* results in these major issues:

  • There is significant fragmentation between OpenStreetMap editors regarding the tags to use for a marked crossing. Correspondingly, there is significant fragmentation throughout OSM's map.
  • Older uses of crossing=uncontrolled do not mean the same thing as newer uses, and I cannot find any attempts to address this historically.
  • The term "uncontrolled" is uncommon in English vernacular and it confuses users who are just trying to map marked crossings in their area.
  • The term "uncontrolled" is used incorrectly: it is not, semantically, correct.

These and other issues are addressed in the following section regarding problems with the current schema.

Problems with current schema (i.e., problems with "uncontrolled")


crossing=uncontrolled and crossing=zebra are used interchangeably by mappers and different software editors use tagging presets for one or the other. Namely, the iD editor used crossing=zebra for the majority of its history due to concerns related to the above issues: confusion to mappers, unclear semantics, etc. As of writing, these are the frequencies with which various crossing=* values are used, in descending order:

Ways Nodes
value frequency value frequency
zebra 201,482 zebra 383,323
unmarked 76,293 unmarked 148,052
marked 59,660 marked 96,527
traffic_signals 25,632 traffic_signals 542,846
uncontrolled 19,655 uncontrolled 725,372
island 2,640 island 51,433
yes 2,241 yes 1,797
pedestrian_signals 645 pedestrian_signals 716
no 237 no 11,860
toucan 155 toucan 2,223
pelican 56 pelican 1,955

crossing=uncontrolled and crossing=zebra are used on the same order of magnitude.

"uncontrolled" is confusing to new mappers

Tags in OpenStreetMap should be understandable by a wide range of mappers and data consumers with unambiguous meanings, so it is odd that something as common as a marked pedestrian crossing uses jargon related to wonkish transit and legal matters. From extensive personal (User:Nbolten) experience helping new mappers (which is mirrored by others who teach OSM), crossing=uncontrolled is often confusing to new mappers, who guess that it might mean the same thing as "unmarked", and definitely do not guess that it means the same thing as "marked".

"uncontrolled" has incorrect semantics

To make matters worse for mappers attempting to map pedestrian crossings, the term "uncontrolled" is used incorrectly in OpenStreetMap. This punishes new mappers that attempt to learn the meanings of tags by googling the wonkish term and leads to worse data.

Here is the definition of an "uncontrolled" crossing per the OpenStreetMap Wiki that is frequently echoed on OpenStreetMap mailing lists, the two primary recommended forums for tagging standards:

A generic crossing with no traffic-signals of any type, just road markings; e.g., zebra-crossings. Generally referred to as a "crosswalk" in the US).

This is in stark disagreement with how this term is used everywhere else, namely as jargon for whether traffic must stop at a crossing. The US DOT definition:

Uncontrolled pedestrian crossing locations occur where sidewalks or designated walkways intersect a roadway at a location where no traffic control (i.e. traffic signal or STOP sign) is present. These common crossing types occur at intersections (where they may be marked or unmarked) and at non-intersection or midblock locations (where they must be marked as crossings).

In other words, an "uncontrolled" crossing is a pedestrian crossing lacking signalization for traffic control. This somewhat reflects how the value of "uncontrolled" was documented in the earliest OSM Wiki edits, but utterly disagrees with what "uncontrolled" is stated to mean on the Wiki and mailing lists.

Semantics / mapping confusion with "traffic_signals"

crossing=uncontrolled is meant (via OSM wiki/tagging list recommendations) to describe marked crossings that lack signals, i.e. it describes two on-the-ground features: markings and traffic signalization. This raises ambiguities regarding other tags for the crossing=* key. For example, crossing=traffic_signals only indicates the presence of signals for pedestrians, but is considered an orthogonal value to "uncontrolled". While many aspects of these and other challenges have to be addressed in other proposals (, "uncontrolled" multiplies the problems by implying multiple descriptors.

Proposed solution

crossing=marked should be used on highway=footway footway=crossing ways or highway=crossing nodes in place of crossing=zebra or crossing=uncontrolled to indicate a marked pedestrian crossing. The use of "marked" or "unmarked" as a value for crossing=* has clear semantics, should be easy for new users to understand, is already in use by the iD editor, and can directly replace crossing=zebra and crossing=uncontrolled in the vast majority of scenarios.

The signalization aspects of "uncontrolled" should be dealt with separately via already-mentioned proposals and is not required for this proposal to take effect and make significant improvements to the mapping experience and data quality.


One of the biggest challenges with using crossing=* is that it has very short and ambiguous descriptions on the wiki (and elsewhere). In the hopes of clarifying the meaning, this proposal includes a more thorough definition.

A crossing is considered "marked" if it has markings on the ground that distinguish it from other segments of the street. Signs indicating a crossing location and "stop lines" for car traffic are not considered marked crossings. Examples of marking types are shown in an image below and can include a solid fill, outlines, or wide dashed lines.

(If the "traffic_signals" value is deprecated): if there are no clear markings on the ground to distinguish the crossing location from the rest of the street, use crossing=unmarked..

(If the "traffic_signals" value is deprecated): [The need for a hierarchy makes it a choice between mapping markings and signals. The best guess one can make is that if there are pedestrian-facing lights that sync with traffic lights, use "traffic_signals", otherwise use "unmarked"].

Potential for extensions

The "marked" value in crossing=marked can then serve as a new key to describe the type of marking. The marking types shown in the Examples section shows a few styles of markings that could be more clearly and easily annotated with a "marked" key.


Name and description Tags Image
A variety of marked pedestrian crossings. highway=footway
An SVG of crosswalk styles: solid, standard, continental, dashed, zebra, ladder.
All of these crosswalk styles would be considered "marked" and use crossing=marked.
A marked pedestrian crossing with pedestrian signals. highway=footway


An image of a marked pedestrian crossing in the "ladder" style with a lighted pedestrian stop signal (red hand).
An unmarked crossing (e.g., street intersection) highway=footway
A street-level picture of a residential intersection, showing a sidewalk on the left with lowered curb ramp, and sidewalk on the right separated with a grassy verge.
A crossing marked with traffic sign, traffic calming table, without surface markings. (Note: this proposal is unaware of a tag for a sign indicating a crossing location, though that would be a useful thing to map). highway=footway
Crossing marked with a traffic sign 20190517 184744 HDR.jpg
Some crosswalks are so worn doubt that they should probably be considered unmarked, even though they have pedestrian traffic signals. highway=footway


Corner of E 151st & Courtland Ave, New York, NY


Ways that are already tagged as pedestrian crossings highway=footway and footway=crossing should be marked with crossing=marked if they have markings on the ground indicating the location of the crossing (e.g. crosswalks, zebra crossings, pelican crossings, etc). Otherwise, use crossing=unmarked if it's a place pedestrians can/should cross the street, but has no markings on the ground, or crossing=no if pedestrians are barred from crossing at this location.

Applies to


Marked crosswalks could be distinguished from other footways in a variety of ways: dashed offset lines, wide dashed lines, an alternative color, etc. This proposal does not recommend any changes to the current ways in which crossings are mapped, which typically does not vary depending on the value of crossing=*.

Features/Pages affected


Plan for updating existing tags

This proposal does not imply that any tags will be machine-edited at any point. If machine edits are carried out later to reduce fragmentation, they will be done according to community guidelines and, in particular, with local community assent.

Because crossing=marked is intended to address fragmentation, but has the risk of just being a third standard (Obligatory XKCD: [1]) and causing further fragmentation. This section discusses possibilities for each tag, but acceptance of this proposal does not imply that any will be machine-edited. In particular, some tags (such as crossing=zebra) will likely have been mapped with different intentions depending on the editing software and local region, and should not be mass-converted.

Tag candidates for automated conversion

The following tag combinations could be updated to use crossing=marked upon approval by the local community, in certain circumstances:

  • crossing=zebra. This would be particularly appropriate in countries where zebra crossings (in the UK legal sense) do not exist. In countries where zebra crossings do exist, these could be accompanied by crossing_ref=zebra.
  • crossing=uncontrolled;zebra. These are nearly entirely in the Seattle, WA area and were intended to be a "compromise" between the competing tags. They should be equivalent to "marked".

Tagged features that should be manually reviewed

MapRoulette would work well for this task.

  • crossing=uncontrolled. Due to widespread confusion over the meaning of this tag, it may not be appropriate to ever machine edit it. A MapRoulette challenge would provide an opportunity to fix any inappropriately-tagged crossings and add additional information.

Related proposals / tagging change opportunities

The subsections below refer to opportunities to improve related tags, some of which benefit from the changes in this proposal. They are not yet official proposals, but may be useful in discussions of this proposal: pedestrian tags are related to one another and there are other ambiguities that would be improved, or more easily improved, by using crossing=marked.


This proposal does not impact the crossing_ref=* key - it can still be used to indicate the UK-specific types of pedestrian crossings. However, the use of crossing=marked could be used (in a separate proposal) for a key like marked=* for different types of marked crossings.

Other values for crossing=*

See Proposed features/Unambiguous crossings

External discussions


Please comment on the discussion page.