What does the combination highway=steps and access=yes mean?

There are currently 51,652 such combinations in OSM.
However, the OSM wiki page highway=steps states:

  • Do not use access=yes (it applies to all transport modes), if you want to tag steps as generally accessible to pedestrians the best solution is to not set any access tags.
    • access=no + foot=yes would technically set it as “only pedestrians allowed” but that is quite tricky to process and brings no benefits

Does this mean that steps tagged with access=yes are also accessible to bicycles, or even cars?
I often see this combination, without any other access tags, being used by iD editor users who want to fill in all the empty fields in the steps preset, so they select the ‘Allowed Access’ – ‘Public’ (access=yes) option.

It’s not explicitly written, but that’s what it means in principle. Every tag in the access tag hierarchy sets the values for all tags below it in the hierarchy, and is then overriden by more specific tags down the hierarchy when they are present.

access=yes is also defined as “the feature can be used by anyone”.

Likely, though, it has probably been misused many times by mappers who don’t know about the access tag hierarchy. (Editors aren’t always very clear on that.) Ideally, access tagging should be as specific as possible first, and then move to the more general top values after careful consideration. For example, one should not use psv instead of bus without considering the implications for taxi.

2 Likes

With all of these edge cases, any data consumers are surely going to use a bit of common sense.

Something might be legally access=yes but not physically accessible to other modes of traffic Here the =steps is a pretty big hint that wheeled traffic might have a problem.**

Alas, whoever wrote that in the wiki doesn’t understand the concept of legal access tags. No access tag just means that we don’t know what the access rights are. It might be yes, it might be permissive, or even no.

** Search England and Wales for designation=public_bridleway; highway=steps; you’ll find a few.

Also, people using access instead of foot on ways normally only accessible on foot is pretty common

7 Likes

I think in a large majority of cases the intention is simply to specify that the steps are public rather than private (or any other restriction such as customers only).

In some situations I’m not sure what else a mapper could do to specify thst steps are public. For example, I often come across short sections of steps on forest trails where no access rights are signed for the trail as a whole. Adding access=no, foot=yes doesn’t feel right as horse riders and mountain bikers may be legally and practically able to negotiate the steps.

6 Likes

There are lots of steps in residential areas near me. Many are private, some are public, the only way to know is by surveying them. The fact that a set of steps has been positively confirmed to be public is valuable information that would be lost if access tags were not set.

1 Like

It is one thing what those mapping the ways think, and quite another what those interpreting and working with the data think, especially since the OSM wiki states something else.

The question, then, is whether this passage on the access page is ripe for a rewrite?

Use the access=* key to describe a general access restriction that applies to all transport modes.

In theory, adding access=yes to highway=footway (for example) could be read as changing default criteria (which in this case are foot=yes and vehicle=no) to yes: thus highway=footway + access=yes means “road, which is open for all pedestrians and vehicles”.

In practice, a combination of a highway=* tag with a general access=* tag is often used by mappers to modify (rather than enlarge) default values, without strict regard to the theoretical meaning. For example, highway=steps tagged with access=permissive are very unlikely to be traversable by a truck, whatever the tags may say.

Even Osmose views ‘access=yes’ or ‘access=permissive’ as ‘wide open to all transport modes’.
access=yes in Osmose

1 Like

As others have noted, access=* and related tags are not about accessibility, but about legal restrictions only.

Depending on you skillset, you might be able to use bicycles on steps (both downhill and uphill). You might want to use mtb:scale and mtb:scale:uphill or even bicycle:physical to denote how hard / possible it is to use steps by bicycle.

One may also decide to microtag width=*, steps_count=*, flat_steps=*, step:height=* and myriad of other physical properties of the steps, if you feel like it, which in more objective and detailed way describe how easy/hard it is use those steps by various transport modes.

Whether it is legal or not to actually do that on certain steps is orthogonal question to that (and is to be tagged with access=*, bicycle=*, mtb=* etc.)


That being said, I find it most likely people probably leave that to common sense and intended to tag only whether those steps are public or private in easy way, without considering dozens of tags, researching local traffic laws & case law and and only then tagging more appropriately.

Which is probably just fine in vast majority of cases, really. Feel free to tag more detailedly if you feel the need, but do keep in mind that access=*, bicycle=*, foot=* etc. are about what local law states (implicitly or explicitly via signs[1]) what is legally allowed, and what is forbidden.


  1. you can use source:access to indicate the source of those restrictions ↩︎

4 Likes

It’s not about the can but is allowed to.

3 Likes

As non-native English speaker, in decades past I’ve been taught that generally one should use “may” to express permission, and “can” to express ability. However, much to my chagrin, it seems that nowadays “can” and “may” are generally being accepted as synonyms and used interchangeably. :man_shrugging:

Thus I now generally tend to stick to RFC 2119 terminology (in UPPERCASE) to signify for what is allowed or not, but alas, it does not cover the whole story :slight_smile:

2 Likes

Actually, some people interpreting and working with the data spend quite a bit of time working out what the people mapping “probably meant”. What the wiki says at any point in time is just a function of the person who last updated it. This might have been following a long and detailed consultation with “what mappers said they meant” or (based on their edits) what they actually meant, … or it may not.

I think that the wiki (the “in practice” caveat) is actually agreeing with me there :smiley: . I’d leave it as is.

If the sun was at its highest point in the sky and OsmOse said it was midday I’d still check my watch :smiley:

Osmose is useful as a list of things that possibly, just possibly, might be worth looking at. It says pretty much that right on the front screen (“It detects a very wide range of issue types … Always keep a critical eye.”).

2 Likes

Also the wording in OsmOse seems misleading here. “Wide open” sounds, if anything, like physical suitability rather than legal access. Even if an access=yes tag on steps is interpreted as meaning that there is no specific legal prohibition against trucks, that doesn’t mean the steps are wide open to trucks in any real-world sense, because they are steps.

2 Likes

I guess what this means is that access=no applies to all of its children tags, but many mappers think access=yes applies only to specific children tags, with the set of those tags varying per highway type. But then, which tag should one use if they want to really represent that every transportation mode is allowed?

access is general legal usability for all means. But that does not express anything about suitability for all means of usage. You might overwrite a access=yes or access=no with more specific groups to exclude them. In this terms there is no difference between yes or no

But obviously a highway=steps might impose physical limitations for wheeled users. Still you might have mountain bikers cycling them downhill. James Bond et.al. used them by car or motor cycle :smiley: But you might not try it yourself, even you are legally allowed to do so.

In areas where scooters are a typical vehicle, you might have an additional ramp=* and are frequently used by scooters.

3 Likes

As an example here are some steps that it is “legal to drive up”. :smiley: . The blue line here shows the “official” line of the public right of way.

Here is another, official line here.

1 Like

I get the difference between accessibility and suitability, but using highway=steps only with access=yes still feels a bit weird. Steps are usually part of a footway network where bicycles sometimes and cars almost always don’t have legal access anyway. After all, the combination highway=footway + access=yes isn’t used without other more specific access tags.

1 Like

I’m not sure how to systematically quantify this in an efficient way, but I found some examples of this easily enough.

E.g. several piers along the river in Seville, like this one

https://www.openstreetmap.org/way/236409109#map=20/37.4055393/-5.9972852&layers=V

Or this exotic example of conveying=forward

https://www.openstreetmap.org/way/1295482914#map=19/53.277687/-6.215783&layers=V

Those are both unusual types of footway but I also found more common paths tagged like this. One example was a whole group of ways in a park - a mix of path, footway, and steps. The mapper who applied the tag helpfully explained in a changeset comment that the ways in the park vary in their practicality for bicycles, but there is nothing to prohibit cycling on any of them.

1 Like

So does the router in OsmAnd (at least for footway). I was once in a car directed to follow a tiny footway around an office building.

That was obviously illegal and impossible to do. But even if it had only been possible, en emergency tag should have used to mark that.

I spent some time look for this road, that I could not see.

I created an Issue on the subject:

One developer is very eager.

He already found out that the issue is not only affecting highway=steps, but also conveyors etc. Which matches the experience in this thread.

Not only that.

Even if you find some weird edge case where cars are definitely allowed on a 1-meter-wide public staircase and emphatically tag it with access=yes vehicle=yes motor_vehicle=yes motorcar=yes, most car routers will ignore it anyways, because they already filtered out highway=steps on the very first step, regardless of any law. Any car router that doesn’t filter it out on the first step… well, find a different router for your parents to use.

A simple fix for the wiki would be to point out that access=* doesn’t change the fundamental nature of the feature. access=yes doesn’t magically turn a highway=steps into a highway=service incline=up or a highway=elevator into a highway=service incline=infinite. access=yes doesn’t turn a leisure=playground into a highway=service area=yes.

We have a neverending parade of threads where legalism runs into practical considerations. Kind of ironic for a project that prides itself on documenting on-the-ground reality.

Well, if it was “obviously illegal”, than access=yes was obviously incorrect tagging (unless it was accompanied by motor_vehicle=no or whatever).

Incorrectly mapped data will pretty much always result in incorrect routing, following the GIGO principle.[1]

But that example does not seem related to this thread, if I understood it correctly? It was simply an incorrect tagging (e.g. slip of a finger or whatever) and not misunderstanding of the tag? Because:

  • if mapper correctly understood tag access to mean “general legal restrictions for all transport modes”, their mapping of access=yes when it is clearly forbidden by law for some modes of transport was wrong
  • but even if mapper misunderstood tag access to mean “physically possible for all vehicles to pass, with unknown legality”, access=yes would’ve been wrong, if (as you claim) it was indeed impossible to use.

If it happened to me, I’d look at changesets and tried to contact the mapper to try to find out if it was systematic error on their part, or just a simple mistake.[2]

If in OsmAnd generic access=* tag takes priority over highway=footway/steps, one should report that in their issue tracker, as it seems nonsensical behaviour to say the least.

(I can understand and support specific access tags like bicycle=* or foot=* overriding highway=*-implied default access modes, but reasoning for those does not fit the generic access=* tag being the overrider)


  1. I mean, if the mapper had tagged highway=primary instead of natural=cliff it was in reality, it could’ve ended up even worse. ↩︎

  2. As OSM Disclaimer says “It is particularly important to realize that the maps might not be reliable, so one should always be aware that there are going to be mistakes on the map ↩︎