How to tag *unusable* sidewalks?

@Matija_Nalis I think the tag parking = on_kerb would be most appropriate to represent this situation.

I don’t think it would be appropriate, parking=on_kerb is for the situation of a legal parking possibility on the sidewalk, it isn’t suitable for places where parking is forbidden but drivers do not obey


Then I’m not sure there is a good way to communicate the concept that @Matija_Nalis wants to at this time.

If he is certain that parking is prohibited here I guess maybe the best way to tag this currently would be:


at least it could be recorded that parking is illegal? Likely a new tag is needed, but then that would likely prompt a controversial discussion about the cars not being fixed objects of true permanence, even though there might be many at any given time on the street.

+1 – The question of how to deal with irregular sidewalk parking came up several times during the revision of the street parking scheme and the majority opinion was that it should not be mapped with the regular street parking scheme. There is no documented alternative concept yet - my suggestion is to use a prefix: irregular:parking:both=half_on_kerb (instead of parking:both=half_on_kerb).

Regarding the sidewalk itself: It is also possible to map it separately as disused:highway=footway + footway=sidewalk, but at the street center line there should still be a sidewalk:both=separate (even if some applications might interpret this as synonymous with sidewalk=both). TagInfo also knows 13x disused:sidewalk if you don’t want to map it separately :wink:


I think this was a helpful contribution.

I agree. I used this one intentionally as it is more versatile (e.g. left side might be protected by bollards and thus usable for pedestrians, but right side might be like original picture and not usable; also it might conceivable extended like sidewalk:both=not_usable, and/or sidewalk:both:width=0.01)

Good idea when sidewalk is still usable in same cases (one could add more popular sidewalk:wheelchair=no to it to indicate that it unusable for wheelchairs, and thus similar categories of people like parents with baby strollers, people pushing bicycles beside themselves etc).
However, I feel it would be a trolltag in this cases where it is sidewalk:both:width=0.01… Like “yeah, sure there is a sidewalk! Oh by the way it is usable only by ants” :smile:

Maybe, but I’m not too keen on inventing all other prefix for tags and trying to get all routers to implement it. I would like a solution that by default (i.e. without any change in many routers/renderers that exists) it would treat it like sidewalk:both=no; but where sufficiently interested data consumer can find out the details.

Maybe something along the lines sidewalk:both=no + sidewalk:both:note=not usable for pedestrians as it is 24/7 full of illegally parked cars

I definitely do not want to make an effort to mark separately something which is unusable :slight_smile:
So thanks, disused:sidewalk=both might be usable alternative too.


Thanks everybody for ideas! While there are several other possible combinations / alternatives, I’ve boiled the most promising choices to three presented below. I’m wondering what would people reading this prefer (I’m personally undecided between A and C)?

  • option A
    sidewalk:note=not usable for pedestrians 
      as it is 24/7 full of illegally parked cars
    pro: produces correct routing by default (i.e. does not route pedestrians there!); does not require any changes to current routers/renderers/editors/QA (easiest!)
    contra: while close, not really technically correct; details only readable by humans
  • option B
    pro: partially technically correct (but incorrect in practice); existing tags (semi-documented, but somewhat common use)
    contra: trolltagging; will produce bad routing by default; require changing all routers/renderers to produce wanted results (lots of work!); should better document tags
  • option C
    pro: more technically correct; documented (prefix) tag; produces correct routing by default (i.e. does not route pedestrians there!); does not require changes to routers/renderers
    contra: very-low-usage tags; require changing StreetComplete quest to skip those (only little work);

0 voters

Just had a thought.

Would just using the normal sidewalk=both + barrier=cars (or maybe parked_cars?) work?

TI says that it has been (just!) used before: barrier=car x 4 & =Cars x 3, & also 1 each for barrier=parking, Parking & parking_pathway.

Would just the barrier= tag be read by routers to say you can’t get through there?

not really: it would block whole highway=residential, not just its sidewalk.

For barrier=* to (potentially) work, one would need to map sidewalk as a separate way highway=footway parallel to that highway=residential, which is quite counterproductive given that such sidewalk cannot be used. So solution is wanted which just adds extra tags on existing highway=residential, and yet which only affects sidewalk part of it.

1 Like

Personally, I would probably not map the cars unless they were truly permanent: in most places I know of, how many cars there are depends on the time of day e.g. during the day on a weekday there will be far fewer. Also, we don’t just map for routing purposes, but also for renderers, data analysis, and other reasons, so I dislike sidewalk=no just to discourage routing when there actually is a sidewalk there.

If you are keen to map it, another option could be sidewalk:smoothness=impassable (with sidewalk:both=yes)?

1 Like

smoothness=impassable does not mean what you seem to think it means. It only means no wheeled vehicle can use it. It does not apply to pedestrians. (in fact, many mountain paths for pedestrians are smoothness=impassable).

Good point, though in this case “impassable for wheeled vehicles” would, technically, not even be wrong: it is hard to see how any wheeled vehicle (bicycle, kick scooter) could use the sidewalk.

But yes, if the goal is to discourage pedestrian routing along this road, it probably wouldn’t achieve that…

What about simply sidewalk:both=parking. It implies that sidewalks exist but are effectively used for parking. If for some reason all the cars go away it reverts to a regular sidewalks.

It’s not a barrier= with definite semi-permanent presence. obstacle= and sidewalk:*:obstacle= should be used.


This “irregular” illegal behavior can be quite “regular” persisting. Should use informal:parking:*= , as parking:*:informal=yes is sorta troll tag. This can further be used for other non-compliant attributes.
disused:*= is used on activities to disable POI and functionalities, not structures and physical compositions that continue to exist. (similarly sidewalk:*:width= should not be used as width= is for the physical width which is unchanged; compared to other possibilities, eg sidewalk:*:width:practical= from maxspeed:practical= ) At least it should be sidewalk:*:disused= to show there is still a sidewalk. And then it may still be argued it is not “disused”, but in use for other purposes.

1 Like

this is not a big problem, extra complexity for other tools, editors and data consumers is a bigger issue

note that at least iD mappers would be likely confused by this new tagging and probably not see it - the same goes for all other editors going with “show typical tags in nice formatted views”

or note=sidewalk not usable for pedestrians as it is 24/7 full of illegally parked cars

D: sidewalk=both_but_blocked_by_illegally_parked_cars_all_the_time ? (similar to what @IanH mentions but mentions illegality)

if sidewalk is never passable then it de facto does not exist

if sidewalk is never passable then it de facto does not exist

I think the sidewalk-property describes the presence of physical infrastructure, not whether it is usable, dangerous, etc.
In this particular instance it is confirmed that the sidewalk is usable sometimes (OP wrote that illegally parked cars are occasionally towed)


I think this is what we cannot agree on. The existence of a sidewalk and its illegal use by cars as a parking space are 2 completely separate things. There have been some good suggestions how to tag this, but it seems they are not satisfying the OP, because routers wouldn’t use them. So this is basically a problem of tagging for the router. I can totally relate to that, and maybe something like class:foot could be pushed (similar to class:bicycle) to discourage usage of certain ways for pedestrians, but denying the existence of a sidewalk is not the way to go for me, sorry.


Any tagging scheme that could be perceived as implying the sidewalk does not exist would eventually be removed by a new mapper or other community member. Whether they understood the original intention or not.


I agree it would be better to distinguish between physical infrastructure (highly verifiable, and useful also for rendering and other purposes) and usability (important for routing but more subjective, and potentially subject to more frequent changes). What’s more, with sidewalk=no,

  • for the casual mapper it is impossible to see if the sidewalk is blocked only right now or always
  • the tag would need to change when the city starts enforcing the rules, even though the physical infrastructure hasn’t changed

In my view the best options that have come up so far are the various ideas around obstacles, irregular parking, or practical width. They’re not in the poll so I haven’t voted.

Why not use one of them and then try and get routers to use them? (I guess a real world example of a road with a lot of traffic would help here)

1 Like

If anything, if marking parking at all, I’d make sure it is marked as illegal, e.g. sidewalk:both=illegal_parking. However regardless of it needs adding support in all (old, current and future!) routers and other tools. It’s never-ending effort, so I want to avoid that.

I’d imagine that by default routers will simply route pedestrians on all roads which have sidewalk* !~ no|none, which would fail to work correctly with such tags and will happily route pedestrians where they should not be routed. So IMHO, routing should be correct even with such dumbest routers (as all new ones will start as, and many will remain).

That is the main reason why I’ve given up on my own idea of sidewalk:both=not_usable too (and haven’t even put it in the poll)

I agree that sidewalk:*:obastacle is less bad than sidewalk:*:barrier; however suffers of same “never-ending effort” problem as above.

There is a big leap between informal and illegal, though. For other suggestions, also see “never-ending effort” problem as above.

Ah, I should really check iD in more detail. I’ve always assumed that if it cannot interpret the tag that it show it in row form, and not hide it? If it hides them, that sounds like a horrible design decision that is likely to break all things that are not in “most popular” list.

or note=sidewalk not usable for pedestrians as it is 24/7 full of illegally parked cars

Hopefully iD does show that note tag at least? I’ll try to do some checking later this weekend.

That seems to be major difference in opinions. Sidewalk is in my definition some surface that pedestrians use to walk on the side of (otherwise dangerous to them) road. If they cannot walk on it, then it is not sidewalk, but a parking, shoulder, verge, or something else.
At best, if not usable for intended purpose, it is disused:sidewalk=* (which is currently my favorite idea). Same as shop=greengrocer which has completely stopped selling things and nobody works there anymore for years is no longer a shop=greengrocer+produce=none but instead disused:shop=greengrocer (even if all physical shop infrastructure is still there!)

Because of “never-ending effort” problem defined above. It is not just current routers etc. It is all the new ones that will ever be written, and it is all the old ones that people use on old devices and cannot upgrade as newer versions require better hardware/OS. I’d like to avoid leading them to their deaths by default just because they didn’t upgrade on time :wink: