Documenting in use tag: cycleway=sidewalk - review is welcomed

I would add that if the purpose is to tag that cycling on a sidewalk is allowed, use bicycle=yes instead.

Apologies. Iā€™m not trying to ignore what you wrote and Iā€™m sorry my response came across as disingenuous. That was not my intent. I understand that where you live a cycleway and a sidewalk are two fundamentally different things. I imagine if I lived there I would have the same mental model. However, I live in a different part of the world, and my mental model is different. In my area these two things are not always fundamentally different. They frequently overlap. Here (North America) it makes sense to have a way to tag that a bicycle/multi-use/shared-use side path is also a sidewalk. In other areas of the world that may not make sense and such tagging would not be used. Nothing wrong with that. Tagging needs to be flexible enough to document subtly different infrastructure in different areas of the world. Please understand that Iā€™m just asking for some flexibility in your thinking to accommodate other parts of the world where our tagging needs may not be the same as yours.

1 Like

Wouldnā€™t a sidepath inherently serve as part of the sidewalk network, as long as itā€™s open to pedestrians? Given some tag explicitly marking it as a sidepath, is there a need to also clarify that the sidepath doubles as a sidewalk, as opposed to one that does not?

Possibly? I think Iā€™m hung up on tags containing sidewalk because Iā€™m typically tagging sidewalk=yes|no|separate on the main road way. In my mental model, sidewalk=separate means there should be parallel ways tagged footway=sidewalk (or maybe cycleway=sidewalk) right nearby. If shared-use side paths are not tagged footway|cycleway=sidewalk then it seems that could indicate sidewalk=no on the main road way. This doesnā€™t seem right since the side path serves as a sidewalk. Maybe a different ā€œsidethingā€ tag can be the match to a sidewalk=separate though?

I may just be overthinking it, but this whole area of tagging is confusing and quite a mess. It seems there are at least six different tags in use to mean a way is a sidepath or sidewalk. Here are current usage numbers pulled from a combination of taginfo and overpass.

Tag Total use Use with highway=cycleway or (highway=path + bicycle=designated) Use with highway=cycleway Use with highway=path + bicycle=designated
footway=sidewalk 5,137,768 30,203 14,626 15,577
is_sidepath=yes 27,424 12,180 5,092 7,088
cycleway=sidewalk 7,454 7,028 6,915 113
path=sidewalk 6,433 5,294 266 5,028
cycleway=sidepath 3,838 3,350 1,288 2,062
path=sidepath 1,950 1,771 74 1,697

Possibly? I think Iā€™m hung up on tags containing sidewalk because Iā€™m typically tagging sidewalk=yes|no|separate on the main road way. In my mental model, sidewalk=separate means there should be parallel ways tagged footway=sidewalk (or maybe cycleway=sidewalk) right nearby.

I think in the case of a shared ā€œsidewalkā€, if bicycles and pedestrians have the same rights, the typical tags are

highway=path
bicycle=designated
foot=designated

otherwise it could be a footway or cycleway, according to the prevalence.

Interestingly there are a few thousand path=sidewalk tags, although it is not very common yet:

https://taginfo.openstreetmap.org/keys/path#values

1 Like

On the contrary, if thereā€™s only a pedestrian lane, or if thereā€™s only an informal desire line beside the road, then I think sidewalk=no would be appropriate, even though it serves the purpose of a sidewalk.

Clearly, these side-things arenā€™t sidewalks according to the plain meaning of the word. But thereā€™s a much smaller difference between a sidewalk and a sidepath from the standpoint of someone who just needs to walk along the road safely, so I understand the desire to avoid applying a technically accurate sidewalk=no.

Maybe this is why some mappers occasionally use sidewalk:*=sidepath. Much like crossing:markings=surface or bicycle/foot=use_sidepath, it answers the question, ā€œIs there a sidewalk?ā€ with, ā€œNo, there isnā€™t, but there is something very closely related.ā€ cycleway=sidewalk does the very opposite: ā€œYes, there is, but Iā€™m going to refer to it as something related instead.ā€

I second what @Minh_Nguyen has written about types of infrastructure and tagging thereof, but on a side note (haha) I wanted to ask:

Why is it important/valuable to tag on a way that thereā€™s another, unidentified way that serves as the sidewalk/footway/cycleway for this way? How will data consumers use this info, and what for?

This isnā€™t intended to derail the primary discussion on how to solve the apparent inconsistency of tagging sidewalk=separate and then not having anything tagged as sidewalk.

1 Like

you can use sidewalk=separate to prevent the way from beeing navigated for pedestrians. Same for cycleway=separate - here it more depends on the preferences of the cyclists if he wants to use the road or not. It also helps to prevent the way from tagging the sidepath twice (separate way + cycleway=track/sidewalk=yes) And it may a hint if you are searching for separate sidepath geometry where you have to search and where not.

But all this is off-topic here. Please help to document the tag cycleway=sidewalk.

1 Like

I agree with the previously suggested change to the wiki page, listing alternative tagging variants. And my question was partly related to that, in the sense that the motivation to tag cycleway=sidewalk is reported to be because of the tag sidewalk=separate on the other way. So my question was exploring that particular branch of the problem so we can provide pointers to better solutions on the wiki.

Iā€™m not sure if we have the same in mind.

Example we have a street with separately mapped sidepath
highway=residential
sidewalk:right=separate
cycleway:right=separate

The sidepath is mapped like this:
highway=cycleway/path/footway
cycleway=sidewalk
foot=designated
bicycle=designated
segregated=*

in my opinion the better solution is
highway=path (/cycleway)
is_sidepath=yes
foot=designated
bicycle=designated
segregated=*

The idea of is_sidepath=yes, footway=sidewalk. cycleway=sidepath ā€¦ is to know that this way is a part of a road. you may think of not rendering the name, or on cyclways doing assumptions about possible oneway for cyclists.

I think historically, cycleway=sidewalk was used if a sidewalk was mapped with highway=cycleway + ā€¦ + foot=designated, instead of highway=footway, because ultimately, the idea was probably to say that the way itself is a sidewalk.

Iā€™ve never used cycleway=sidewalk or the newer forced path=sidewalk, because by definition, only the footway-part can be the sidewalk, but thatā€™s probably a language thing.

Anyway, coming to the suggested mapping, if is_sidepath=yes is supposed to unite all <whatever>=sidewalk-tags. then would is_sidepath=yes be kept, even on a footway=crossing/traffic_island? At least thatā€™s what is_sidepath seems to be standing for in your example and what you mean with Ā»to know that this way is a part of a roadĀ«. And would you also want to move from

highway=footway
footway=sidewalk

to

highway=footway
is_sidepath=yes

in the long run? Or is it only meant for sidewalks where cycling is allowed? Iā€™m a bit confused where this is going.

1 Like

I agree that sidewalk=no is appropriate when an informal desire line is the only pedestrian option. The pedestrian lane case is less clear to me because unlike a desire line, a lane is intentionally created infrastructure.

Right. As you said earlier, ā€œa sidepath is like a deluxe sidewalkā€. With the current state of tagging (which of course could change) I donā€™t find sidewalk=no to be technically accurate where a multi-use sidepath exists. Tagging sidewalk=no + cycleway=separate indicates that there is a sidepath for bicycles, but doesnā€™t indicate whether that sidepath is also designated for pedestrians.

A use case Iā€™ve seen discussed is a data consumer wanting to distinguish streets with sidewalks from those without. This is indicated by sidewalk=yes|no[1] or sidewalk=separate|no where sidewalk ways are also mapped separately. This use case isnā€™t interested in those separate ways themselves, just whether sidewalks are present as an attribute of the street. This could be one aspect of giving a street a pedestrian friendliness score or it could be for a color-coded city scale map of which streets have sidewalks and which donā€™t. For this use case, it would not make sense to classify streets with a multi-use sidepath in the same bucket as the streets with no sidewalk at all.

I suppose it may be somewhat. However, I find it hard to discuss the cycleway=sidewalk documentation without also considering the five other in use tags that seem to mean essentially the same or similar (footway=sidewalk, path=sidewalk, is_sidepath=yes, cycleway=sidepath, path=sidepath), as well as the sidewalk=separate|no and cycleway=separate|no tags on the main road way. Decisions made about one of these tags can affect the other tags as well.


  1. Wherever I use sidewalk=, I mean it as shorthand for sidewalk, sidewalk:left, sidewalk:right, and sidewalk:both. ā†©ļøŽ

2 Likes

Good point. And in this case, tagging ā€“ or not tagging ā€“ the sidepath with cycleway=sidewalk doesnā€™t impact the data consumer at all. For consumers/use cases who look at things from the other wayā€™s perspective, tagging is_sidepath=yes will contribute what they need.

Is there a use case for cycleway=sidewalk that isnā€™t covered by these two?

Not directly from that tagging choice, no. But this will influence the sidewalk= tag choice on the street as well since the tags on both ways should be consistent. Here are some diagrams to try and illustrate my point (all represent a separately mapped sidewalk/sidepath situation):

Pedestrian only sidewalk & bicycle only sidepath

Here sidewalk=separate on the street matches the separate hw=footway + footway=sidewalk and cycleway=separate on the street matches the separate hw=cycleway + is_sidepath=yes.

Bicycle only sidepath & no sidewalk

Here there is no dedicated sidewalk and the path is for bicycles only, so sidewalk=no goes on the street.

Shared pedestrian & bicycle sidepath

This is situation is physically the same as above, but the sidepath is equally for bicycles & pedestrians. What sidewalk= value should the street have? If sidewalk=no, how should a data consumer determine that pedestrian infrastructure is available on this street? If sidewalk=separate, then what should be tagged on the sidepath for consistency? is_sidepath=yes feels to me like it doesnā€™t quite do the job because it can be use on non-pedestrian ways as well.

both cycleway:side=separate + sidewalk:side=separate (the separate way is both in once)

without a separate path it also would be cycleway:side=track + sidewalk=side

3 Likes

Combinations like this and the (hopefully rare) sidewalk+pedestrian lane are why I think a footway:right=* tag on the roadway would be more robust than trying to cram more information into the overly specific sidewalk:right=* key.

Or maybe we should abandon the idea that the roadway can say specifically whatā€™s on either side. *:right=separate can just mean that, if there is anything beside the street in the real world, itā€™s mapped as a separate way, go look for it.

1 Like

Itā€™s already been proposed that the sidepath tagging in this case is that of a multi-use path. What drives the need for ā€œconsistencyā€ (i.e. the need for a ā€œsidewalkā€ tag on the multi-use path)?

The ā€œsidewalk=separateā€ seems to only convey that there is a pedestrian facility mapped separately. There used to be footway=separate as well, but it was deprecated in favour of sidewalk=separate, so that seems to cater to both now. And a multi-use path is a pedestrian facility, so that should be both logical and understandable. Right?

It is both: a pedestrian and a bicycle facility.

This is my answer as well and why I would tag footway=sidewalk on the sidepath. cycleway=sidewalk would also seems fine to me if people donā€™t like mixing highway=cycleway|path with footway=sidewalk. I see how this type of use could be unclear since cycleway=* is mostly used as an attribute on street ways rather than a sub-tag on sidepaths. However, cycleway=crossing is used on sidepaths so the key is already dual-purpose.

A footway=, footway:right=, etc roadway attribute schema would make sense to me and would match up well with the similar cycleway=, cycleway:right=, etc attributes. As @balchen says, it seems this use of footway[:*]= was deprecated. I donā€™t know the history, but now sidewalk= seems quite well established at nearly 4 million uses.

Human nature probably? :grinning:. I notice many mappers going out of their way to ā€œmake things consistentā€ even itā€™s not really necessary. Consistency makes schemas clearer and easier to understand, so itā€™s good to aim for when possible. Sometimes itā€™s not possible and thatā€™s ok too. If it becomes well accepted that a sidewalk=separate tag can be properly matched by a nearby way tagged something other than footway=sidewalk, I can work with that. However, this is not currently clear to me. footway=sidewalk has over 5 million uses while none of the other sidepath/sidewalk tags come anywhere close to that.

Thatā€™s the whole point: does cycleway=sidewalk make any sense at all? My understanding is that only footway= can have a value of sidewalk, because the OSM understanding of a ā€œsidewalkā€ is a pedestrian infrastructure. But historically, some people wanted to use the value of the highway as a key for the =sidewalk, thus cycleway=sidewalk was born ā€“ at least thatā€™s how I picture it. Thatā€™s also how path=sidewalk came to be, and why I found both cycleway=sidewalk and path=sidewalk wrong.

If itā€™s only about documenting the use of this tag combination, that would be my shot:

If itā€™s about encouraging or discouraging its usage, Iā€™d say make footway=sidewalk the only valid combo out of the 3 ones in use.

If itā€™s about tagging of sidewalks in general, Iā€™m starting to like the idea of completely ditching footway/cycleway/path=sidewalk and replace it with is_sidepath / is_sidepath:of:, because other values (like cycleway=crossing and footway=crossing) would currently prevent these from being sidewalks/sidepaths.
This would ultimately make it easier for maps to stop displaying separately mapped sidepaths at certain zoom levels (and simply look at sidewalk=* / cycleway=* attributes of the ā€œmainā€ road), and not displaying their names at all, mappers to add names to all kinds of sidepaths, and finally routers to give meaningful directions like ā€œfollow the cycleway along 5th streetā€ (given that they received a name).

3 Likes