From OpenStreetMap Wiki
Jump to navigation Jump to search

a question mark

This article or section contains questionable, contentious or controversial information. See the talk page for more information.
Logo. Feature : Sidewalks
One example for Feature : Sidewalks
Sidewalks (also footways, footpaths or pavements) are provided beside the carriageway of a highway for use by pedestrians and sometimes also cyclists.

highway=footway + footway=sidewalk/crossing

Additional tags

A [W] sidewalk (or pavement) is that part of a highway set aside for the exclusive use of pedestrians and sometimes cyclists too. A sidewalk may be separated from the [W] carriageway (or roadway) only by road markings (but see below), a [W] kerb (or curb), a [W] road verge, or alternatively may be at some distance from the road (but still associated with it). It also may be separated from the road by some form of barrier, for example bushes or a line of trees. A road may have a sidewalk on only one side of the carriageway, on both sides or have no sidewalks at all. The inclusion of sidewalk information can help tremendously in providing effective pedestrian routing.


In the UK, the legal term for a pavement or a sidewalk is footway. However, the term footway is used within OSM for paths in a broader sense, and the term pavement which, in the UK is often used as an alternative, is used in the US for the surface of the carriageway (which there, incidentally is known as roadway.) So because footway and pavement, the British English terms, are prone to confusion, the North American English term sidewalk gets used here, even though British English is the preferred language for OSM tagging and wiki.

How to map

There are two schemes to map sidewalks. It is advised to reach out to local community prior to engaging in extensive (re-)mapping in a different method than used in a given region.

Overview of advantages of each scheme
Consideration Tag on highway Separate footway
Resembles aerial imagery no yes
Precise coordinates and contours no yes
Easy to map in a mobile editor yes no
Directions with street names yes yes if the name is added to the footway (producing multiple geocoding results) or when using relations[a 1]
Detailed accessibility tagging usually sufficient, but not when most needed in complex spaces yes
Directions with pedestrian crossings usually sufficient, but not at intersections without crossings on some sides yes
Crossing streets at any point[a 2] always (may be undesirable depending on local laws) never (may be desirable depending on local laws)
Rendered on most maps no (may be desirable, as the map is clearer) yes (may be desirable, as the map has more details)
Easy to map in a desktop editor yes yes, but more work
  1. Relation:associatedStreet and Relation:street are increasingly rare.
  2. Crossing at any point is usually safe in low speed and low traffic local ways such as the abundant highway=residential. But pedestrians are also likely to use the map on or near busy streets.

Sidewalk as separate way

Currently approved (not to be confused with deprecating other approaches) method that works as a refinement of footway tag (showing a 5% margin according to taginfo) is to map each sidewalk as a separate way. This method consists of drawing a new footway where there are sidewalks on the ground and adding the highway=footway + footway=sidewalk tags onto it. In addition, the associated street/highway should also be tagged with sidewalk=separate.

Sidewalk steps in Barcelona. Sidewalk steps are common in hilly areas (another example).

Note that footway=sidewalk and footway=crossing may appear not only on highway=footway but also on highway=path and highway=construction. Additionally, footway=sidewalk can appear on highway=steps.

This is a hint for renderers to use special handling of sidewalks if supported. In addition, use footway=crossing for places where the footway crosses a street and place a node at the position of the kerb/curb and tag with kerb=* and its type, which provides useful information for wheelchair navigation. For more detailed explanation see footway=* page.

This method allows for a more spatially accurate representation of the pedestrian environment. In addition, it allows a more straightforward use of barrier=*, tactile_paving=*, kerb=*, and surface=*, and it is possible to indicate that a sidewalk goes over a bridge while the associated street goes over a culvert. The method produces a visible result in existing routing engines and renderers, as they will usually treat it the same manner as footways that are not associated with a road, unlike the sidewalk=* key that is rarely displayed on maps.

A drawback of this approach is that acquiring a name of the associated street in an automated way is challenging. Some mappers therefore add name=* or street:name=* tags copying the name of the street to separately mapped sidewalks. In addition there are more complex proposals of Relation:associatedStreet and Relation:street that allows assigning names to sidewalks. There is no consensus on whether this is necessary, and regional customs differ.

Crossing only on explicitly marked crossings may be sometimes desirable, examples including wheelchair users, countries where pedestrians may not cross roads at any location legally, people who anyway prefer crossing roads at explicit crossings. In some countries by law any residential road intersection contains pedestrian crossing even if not marked by a street sign or road markings. Sometimes people would prefer to allow crossing smaller roads at any point along the road where it is legal to do so. If you wanted to build a router that allows that then you would need more sophisticated processing.

A serpentine sidewalk in California forms a road verge of varying width beside a straight road. Some sidewalks meander or even zigzag as a design feature or to avoid large trees.

If the sidewalk meanders instead of maintaining a consistent distance from the roadway, recording the curves can be significant for calculating an accurate travel time for pedestrians; however, if the sidewalk is only represented by tags on the roadway, the roadway would need to be split into very small increments. Instead, consider mapping the sidewalk as a separate way, to avoid making the roadway unmaintainably complex.

Sidewalk as refinement to a highway

This method consists of adding a sidewalk=* property onto sections of an existing road to indicate, where it has sidewalks.

Supported values for the key are sidewalk=both/left/right/no (none gets used synonymously to no). Designations of left and right are relative to the direction of the way. Properties of the sidewalk can be added as sub-tags on the street, for example: sidewalk:left:width=3 m, sidewalk:left:kerb=raised, sidewalk:right:bicycle=yes, sidewalk:both:surface=paving_stones.

For a number of users, crossings and their properties are of just as much importance as the sidewalks themselves: A highway=crossing node is to be added to the line representing the road, where there is one.

As this method is geared towards places, where sidewalks mostly are attached with merely a kerb, it does not aim at providing detailed geometric information. There is no rendering in the standard openstreetmap view for data contributed that way either. Still, the contribution helps pedestrian routers in determining the suitability of where they are sending users. Not the least, because this method also allows to indicate the absence of sidewalks on streets, on which they are usually taken for granted; This alone makes up most of its raw usage in the data.

Most eminently, this method provides for nicely narrated directions from routing programs, as the name of the street can be easily spelled out in the itinerary. Furthermore, free crossing of streets anywhere can be easily implemented, a function that is desirable by many. This method also lends itself favourably for tagging quests in craft mapping apps.

On the other hand, things can get messy e.g. at complicated crossings, where sometimes separate footways have to be introduced to manage the complexity. In 2017 missing OSM Carto rendering of sidewalk tags was reported as an issue in their source code repository but the effort went nowhere[1]. Nevertheless, mapping sidewalks with a sidewalk=* tag is a popular long-standing and de-facto practice with good editor support and a number of data consumers make use of it.

Where there are sidewalks, or where there are none, the presence and width of a road verge (berm, curb strip, tree lawn, etc.) can be tagged as verge=* and verge:width=*, respectively. Verges play into the larger subject of mapping pedestrian infrastructure, as in many legislations people are to walk there, if sidewalks are missing. Same holds for shoulder=*, especially in areas, where they are present on not just motorways, and actually available to pedestrian traffic.

As a pedestrian lane on the road

Pedestrian lane

There were various discussions and attempts to define "surfaces designated for movement of pedestrians, which are separated from carriageway only by a line of paint (and possibly vertical sign)". There does not seem to be clear preferred consensus on how to map them.

Here are several ways (sorted by most popular on top) how people are mapping those as properties of an existing road (e.g. highway=residential):

  • sidewalk=no + lanes=1 + vehicle:lanes=yes|no + foot:lanes=no|designated + oneway:lanes=yes|no - no "sidewalk", but left lane is for vehicles, and right lane is for foot traffic (sometimes yes is used instead of designated). Warning: :lanes extension is documented as supporting bicycles, but not foot traffic ("covers all kinds of lanes for all kind of vehicles and is not restricted to motorized traffic"), so it is problematic. Also note that lanes=* counts only motor vehicle traffic (so no cycleways nor pedestrian lanes). Thus e.g. one motor vehicle lane + two pedestrian lanes + one cycleway lane should still be counted as lanes=1 and not as lanes=4 ! Concerning the use of foot:lanes=*, access:lanes=* in the same meaning appeared in Proposal:Suffix both ways

  • lanes=1 + lanes:forward=1 + lanes:foot:backward=1 - less complex variant of the above, only count the foot lanes, not their exact positions. See warning from previous point too!
  • shoulder=right + foot=use_sidepath (or +foot=designated) + sidewalk=no - some are of opinion that it is a walkable shoulder, and not a sidewalk, as sidewalk in their region is term to be used exclusively when it is separated from carriageway by physical barrier like a kerb or a treeline. (Note:taginfo can not count that, and even this overpass is just an estimate giving 16 ways that might possibly be that tagging)
  • foot:right=designated|lane - as an access right of a polyvalent highway, with documented value designated (or undocumented value lane). Value of yes should be avoided, although it seems to also be sometimes used, because it is much less clear - it only indicates that pedestrian is legally allowed by law to walk on the street (perhaps sharing the lane with cars), and not that there is designated lane for pedestrians.

Some people might even use some combination of those tags ("dual/double tagging").

Cycleway and footway on sidewalk

In some cases sidewalk is also a cycleway. In such situations following methods are used

Permanently unusable sidewalks

This was originally intended as a sidewalk on both sides of the street in Zagreb, but it is now constantly being abused for illegal parking of cars, so is never available for pedestrians to actually use. This picture shows how it looked when it had almost least amount of cars - most of the time, there are even more cars parked.

While it was found that there is no perfect way to tag such situations (where sidewalk was technically built, but is unusable at all times) most popular compromise that emerged was to tag it as:

  • highway=residential + disused:sidewalk=both + note=sidewalk is not usable for pedestrians as it is 24/7 full of illegally parked cars.
    Some advantages it has to alternatives are:
    • It is clearly marked that there exist physically separate surface on both sides of the road (via sidewalk=both part of the disused:sidewalk=both)
    • It is clearly marked that that surface is currently totally unusable for pedestrian traffic (via disused:=* Lifecycle prefix), but that is may become usable in the future (e.g. if municipality adds bollards to stop cars from illegally parking)
    • note=* indicates in human-readable popular format a warning to editors and other users why exactly it is unusable, to prevent users re-tagging it incorrectly
    • most routers will likely take absence of sidewalk=* as an indication that it is unknown whether pedestrian may be safely routed there, therefore preferring other ways with sidewalk=yes instead. Advanced routers might even detect disused:sidewalk=both and actively avoid routing pedestrians there.
    • Some users may additionally include sidewalk=no to that list in order to make sure all routers avoid it actively, but see below that this has some opposition. In some cases, mappers might also additionally add e.g. parking:both=no to indicate lack of parking lanes, and/or parking:note=* to indicate it is illegally being used for parking).

Some of the other discussed ways to tag that situation, which were mentioned in discussion are listed at Talk:Sidewalks#Permanently unusable sidewalks

Temporarily unusable sidewalks

Regional conventions

In some regions, one of these tagging schemes is clearly more popular than other.[2][3] In such case it is strongly preferable to continue mapping using established method. For example, in Warsaw, a large part of sidewalks are mapped using separate way scheme, without copying road names. Changing this would require massive amount of work and would be unlikely to be considered as a good idea by local mappers. In a place where the majority sidewalks is mapped using tags on roads, one should not start mapping footways as a separate ways without consultation with a local community.


In the early days of OpenStreetMap, there was no specific method to map sidewalks. Actually, there was no method to map ways for pedestrian use at all. This latter deficiency got remedied by popular usage of the highway=footway tag. Its wiki article dates back to January 2008. There was still no method to specifically map sidewalks then, though footways sometimes got used to this effect, especially, where they were physically distinct features on ground.

Beginning some time in 2008[4], people started annotating streets with sidewalk=* tags, especially so, where sidewalks were perceived to be physically indistinct features on ground, thereby following the "One feature, one OSM element" good practice principle. Again by popular usage, this "refinement of the highway" approach became a first method, to specifically have that information in the openstreetmap database.

Continued extensive mapping of separate footways alongside of roads and streets, in 2011 prompted the "refinement of the footway" approach[5], by annotating such ways with a footway=sidewalk key. Although conceptually quite different, from the point of view of the objective, this tool made both methods informationally roughly equivalent, in that the presence of sidewalks on ground was clearly indicated, so it got approved by community vote. Historically it became known as the "separate way" approach of mapping sidewalks, after the practice it set out to heal.


Popularity of each scheme vastly depends on location,[2] with each schema clearly dominating in some regions. For example, tagging as road property is clearly dominating in Britain and Western Europe, while mapping as separate way is clearly dominating in Poland, Eastern Europe and the US.

Comparing popularity of mapping with sidewalk=* and as a separate way with raw usage count such as taginfo is not helpful for multiple reasons.

Comparing usage count often works for comparing popularity of tag schemes, for example for shops. But for sidewalks it is not really working, as:

  • the same sidewalk/road may be mapped as 1km long element (counted once) or split every 50 meters (counted 20 times) (raw usage overestimates usage in areas with detailed mapping, that often use sidewalks as a separate ways)
  • Separately mapped sidewalks may have no footway=sidewalk tag, undercounting their use
  • Streets with two separately mapped footway=sidewalk count twice, while sidewalk=both is counted only once, underestimating sidewalk=* use
  • sidewalk=no is used also in places mapping sidewalks as separate ways (should not be included in comparisons)
  • sidewalk=separate is not always used (places mapping sidewalks as separate ways are often missing it)
  • footway=crossing would not be mapped as a separate object in mapping a sidewalk as a road attribute (should not be included in comparison)

Overall, due to all those distortions, all what raw usage count analysis can do is to confirm that both methods are actively used.


Below some pictures meant as an aid in determining what makes a footway a "sidewalk"; i.e. part of a street, vs. an independent feature. [ dubious ]

Ref Sidewalk Delimited From Its Road By …

Curb cut for wheelchair ramp (DSC 3500).jpg

a curb
1 Gehsteig mit Markierung.jpg a floor marking (but see possible controversy)
2 Gehsteig mit Pflasterung.jpg a different paving / valley gutter
3 Pittsburgh South Side 2019-07-22 Sidewalk on Sarah Street a row of trees
4 Gehsteig bei Bruecke Eibiswald.jpg some kinds of barriers
5 Gehsteig in Obervogau.jpg a narrow green strip / verge
6 Gehsteig unter Bruecke.jpg a wider green strip, structurally motivated

Below are some pictures of roads that may be classified differently from country to country.
For further information see discussion.

Ref Sidewalk? Side Road? Separated From The Road By ...
A Begleitweg am Boeschungsfuss.jpg a slope
B Begleitweg an Boeschungskante.jpg a ditch


Further reading

See also