Tagging kerbs on crossings

The pair on one crossing.

Feel free, not me.

Yet, again, the barrier=kerb should be mapped at the exact position and I doubt that they are at the intersection of the two ways but rather shortly before/after the intersection only on one way.

May very well be but that’s not where certain software puts them completing a quest not to speak of crossing mapped as simple nodes.

It seems that it is caused by id-tagging-schema/data/presets/barrier/kerb at main · openstreetmap/id-tagging-schema · GitHub

So maybe better place to report it is at Issues · openstreetmap/id-tagging-schema · GitHub (and I would try to significantly shorten it, current one is extremely long and maybe could be shorter)

1 Like

Thanks. Now reported (without all the background) at iD recommends adding barrier=kerb to kerb=* when it shouldn't · Issue #858 · openstreetmap/id-tagging-schema · GitHub

1 Like

(related topic: Improving the Wiki documentation of barrier=kerb and kerb=* - #28 by westnordost )

  • StreetComplete could a different tag than kerb=raised to say that a potential crossing has been surveyed and the kerb is high - I have suggested this to @westnordost

But which tag could be used? To summarize the current state:

StreetComplete asks for intersections between footways and road-ways if there is a crossing. It’s a reasonable assumption that there might be a pedestrian crossing and not just pure coincidence that footways branch off from the road on both sides at exactly the same node.

If there is a crossing, the app adds highway=crossing.

If there is no crossing,

  • it cannot add crossing=no because crossing=no should only be used if crossing the road here is either not possible or not legal. (This has been documented as such since 2008)

  • It cannot add highway=crossing + crossing=unmarked because a (vocal) part of the community understands that this tag should only be used on crossings that are designated in one way or another as a crossing, at the very least through a lowered kerb

  • hence, the compromise has been to add kerb=raised in such case (without barrier=kerb). It was the result of a long discussion in the old German forum.

Going forward, it could tag something else in the future. I see two options so far:

  1. Reconsider using highway=crossing + crossing=unmarked in such a case. Reasons that speak for this:

    1. Even if a crossing is completely unmarked and not designated in any way, when a footway crosses the road at this point, it is pretty much an informal crossing, like in this example here. Hence, for (router) applications that evaluate crossings, they might want to treat it the same as an unmarked crossing anyway

    2. In (some) areas where sidewalks are mapped separately even in residential areas, it has become common practice to add a highway=crossing + crossing=unmarked at basically every street corner, even if there is nothing in terms of designation or marking as a crossing, i.e. even sometimes no lowered kerb

    3. The iD editor still (AFAIK) suggests to add a highway=crossing to every intersection of a driveway with a separately mapped sidewalk. Subsequently, this crossing is tagged with crossing=unmarked. According to those voices from the (old) German forum, this is also not correct. But this feature exists for so long already, it has become somewhat of a de-facto mapping

  2. Use a different tag that does not conflict with iD editor preset suggestion rules. I think somewhere kerb:both=raised was proposed. What speaks for this is that it does not stir any disagreement in what does and what doesn’t count as a highway=crossing + (crossing=unmarked)

Edit: I currently tend towards option 2 though, or alternatively change nothing, as I understand that the suggestion has been removed from iD?


Thanks for your reply!

Yes, as of yesterday, the suggestion to add barrier=kerb to all kerb=* nodes has been removed from iD (the change isn’t live yet on openstreetmap.org). This makes the issue less pressing (though it doesn’t change the fact that kerb=* as it’s currently used has multiple different meanings and I imagine it’s hard for data consumers to distinguish between them).

Also, we’ll still need to deal with the existing nodes tagged barrier=kerb kerb=raised that really should not have this kerb tag. I’m planning to propose a solution this weekend.

Should be possible to find these with overpass, so one could make a maproulette challenge with that.

Thank you for being open to changing the current behavior. I agree that adding highway=crossing + crossing=unmarked might not be the best approach. I actually took the time to read through the arguments of each side and it’s clear that neither crossing=no, nor crossing=uncontrolled would be a perfect fit for what you’re trying to say.

The only problem I’m having with keeping kerb=raised or changing to kerb:both=raised is that I’ve seen this being used for continuous sidewalks as well. Like these: https://www.mapillary.com/app/?lat=52.386810192105&lng=9.8347730700332&z=17&pKey=1197415660687010&focus=photo
This used to be tagged with simply kerb=lowered and nothing else (and in this case the meaning was: kerb from a car’s perspective, not from a pedestrian’s), because it’s technically not a crossing of the footway over the carriageway, but rather the other way around. And that way going over there is by no means a highway=service or even a driveway.

There aren’t a lot of cases like this I suppose, but someone came up with a wiki page how to map these and this is probably the third possible answer to “is there a pedestrian crossing”. I found a few dozen of these over here, so maybe, while working on that bit of SC, you want to consider this as an answer as well. The number of these “crossings” is increasing lately, because it slows down traffic immensely.

That is a real problem. So far, I have always looked from a pedestrian perspective and then it would be kerb=no. Maybe it is worth mentioning the perspective in the wiki at least in connections with highway=crossing.

In case of detailed mapped areas with sidewalks and cycle-tracks as separate objects the best solution is to tag the barrier=kerb, kerb=* node at the exact position only as child of one way or end/start node of a maximum of two ways.

Please, do not use :left, :right or :both on nodes. Nodes do not have any direction. :both just lengthen the key and the other two only work in conjunction with a single parent way and lack support in editing software. If you are eager to support different values per side, cardinal directions might work.

There is also some 900+ uses of crossing=unknown (its wiki says its deprecated because “Unknown properties do not need to be tagged”, but this may be the exception that proves the rule :thinking:)
(also note that contrary to what that wiki page claims, its deprecation is not documented at Deprecated features - OpenStreetMap Wiki)

Alternatively, there is also some few hundred uses of crossing=informal (although yet undocumented) which might fit better than crossing=unmarked (which, as noted, some people demand is only for designated crossings)

1 Like

I like crossing=informal, but I would not use it together with highway=crossing, since that describes “[…] a designated street crossing for pedestrians, cyclists, or equestrians”. crossing=no is also to be used without highway=crossing, so maybe crossing=informal can be the same? It would actually make sense.

On the other hand, there are crossing ways that are neither informal crossings nor official ones nor forbidden. An example would be 2 footways/paths connecting to a busy road, but only to the road’s sidewalks. So while you might theoretically be able and allowed to cross the street in countries where jaywalking is laughed about, you certainly don’t want routers to route over these. Factually, there is no crossing there, so crossing=no would feel like the right thing to use. Even though most people associate crossing=no with “forbidden to cross”, I’d like to point out that the wiki says “Tagged at nodes where it is not suitable […] to cross” and that describes the situation pretty well for me. I know this is a recent addition, but the example this comes from is from 2012, so not that new at all.

So TL;DR: I think we could use both, crossing=informal, and crossing=no (both without highway=crossing), depending on the situation.

1 Like

I agree. Came here to write that, but I see you already did. If crossing=informal was to be used together with highway=crossing, it would not be (backwards) compatible with consumers that rely on highway=crossing being an actual (i.e. designated in some way or another) crossing.


crossing=informal has been used before but without checking we can’t be sure what they meant.

A Google search tells me the term “informal crossing” is used in some official looking documents where we would use unmarked e.g. where there is only a pedestrian island, or only a dropped kerb with tactile paving.

My understanding of anything informal in OSM is: it’s used like that feature, it just wasn’t meant to be used like this. So while a crossing=unmarked is still a visible crossing that needs to have some feature that makes it recognizable as such, crossing=informal would be something like living street, crossing, with raised kerbs on both sides where people cross the road, because they are too lazy to walk to an “official” crossing.

But you’re right in reminding us, that we need to investigate what the current use is, document it and then see if it’s actually a good fit.


Both street and railway crossings have moved the crossing:attribute=value. This was originally to accommodate sreet crossing with both specific markings and signals. A marked crossing is now tagged as crossing:marked=yes. As far as I know ID has been supporting this new scheme for at lrast 6 months or so. Railway started using the same sheme to handle multiple signaling methods. This is able handle all signaling types used at a rail crossing.

So it looks like you implemented crossing=informal? I’m not sure how to feel about this, because again, if you look at how the term “informal crossing” is used outside OSM, including in actual design guidance documents, it is used for situations where there is actually some kind of pedestrian crossing infrastructure, just no pedestrian priority: the situation that we would tag as unmarked.

In many other ‘informal crossing’ locations, pedestrians use islands and median strips in the carriageway to cross in multiple steps, even where those islands were not intended for that
purpose. A more deliberate informal approach may be taken, using materials and streetscape
features to ‘suggest’ that a crossing facility exists. This encourages drivers to slow down
through the space and give way as necessary to anyone wanting to cross. These facilities
do not confer any priority on the user seeking to cross, but can have a positive influence on
driver behaviour.


A raised table across a road or a pedestrian refuge would be considered an “informal” crossing point


If this is to be the new tag, we should document it in the Wiki. I find this unfortunate, as such a page would invariably include a similar disclaimer to crossing=uncontrolled, where the Wiki page says:


Despite the name, this tag is not for uncontrolled crossings: for unsignalized, unmarked crossings, use crossing=unmarked.

I just find tags that mean something different from what they mean outside OSM unnecessarily confusing.

Some other options that have come up, in various discussions about the issue:

  • sidewalk:both:kerb=raised
  • kerb=raised with kerb:location=footway

I realise that when you’re only looking at this discussion, it looks like the conversation had stopped a month ago, but it continued a bit here and there, see for example this comment. If there is community consensus that informal is fine, I’m not going to keep arguing against that, I just wanted to bring it to people’s attention.

You’re making a valid point there. However, even Wikipedia seems to mix these up:

So this, to me, sounds like informal and uncontrolled crossing pretty much mean the same in the UK. Actually, our meaning of uncontrolled seems to match at least that of Wikipedia. It’s still not a great choice, but we learned to live with it, even though other editors tried to establish marked and zebra.

What then, would you call a crossing that is not designed as a crossing, but is sometimes/often used as such? Because crossing=no means “crossing not possible/legal”? Saying that there are kerbs with this and that height doesn’t mean “crossing the street here is legal”, so it’s not actually a replacement for what we want to say.

OSM also has informal=yes, which means " […] that a feature has not been established on purpose." So while I think, saying that it might confuse people from the UK to tag a crossing that’s not officially one as “informal” is a valid point, personally I’d find it more confusing, if crossing=informal was now to be used for uncontrolled crossings, contradicting the current OSM understanding of “informal” as “unintended”. Maybe this is better put as crossing_ref=informal, because it seems to be a UK thing, or is “informal” used as an alias for “uncontrolled” in other regions as well?


I don’t think we need three tags (unmarked / uncontrolled / informal) to indicate that a crossing is not a “real” crossing… :wink:

You mean two tags? Because crossing=uncontrolled is a real crossing (i.e. it mostly means the same as crossing=marked or crossing=zebra). IOW, that “uncontrolled” means “not being controlled by traffic lights”.

As for why just one tag crossing=unmarked is deemed not enough, but there is also crossing=informal, one should best read whole of this thread, or at least this comment.

1 Like