Offer the segregated field on shared refuge island presets - #2792
Conversation
"Cycle & Foot Refuge Island" carries the same foot=designated + bicycle=designated combination as "Cycle & Foot Path", but inherited its field list from plain "Cycle Path", so the segregated field was not offered. Inherit from highway/cycleway/bicycle_foot instead, which the preset already cross-references for its locationSet. highway/path/traffic_island_shared inherits its fields from this preset, so it is fixed by the same change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Br4173HXvGTDMgXiVLnBga
|
🍱 Your pull request preview is ready Please use this preview to check your changes. Ideally use the test documentation template and document your test results by commenting on the PR. This will speed up the review process for everyone. Use the Compare View on the Tagging Schema Browser (alpha) to see the changes of your PR against the FYI, once this PR is merged, you can use the iD Editor Preview to test your changes in interaction with all other changes. |
|
Have you verified presumably Claude's PR description? Can it be maybe shortened? |
|
It's a long justification for a simple change (adding |
andrewharvey
left a comment
There was a problem hiding this comment.
I didn't review the lengthy AI generated description, but going by the diff and screenshot, I agree with this change, a "Cycle & Foot Refuge Island" (a way tagged as highway=cycleway + cycleway=traffic_island + bicycle=designated + foot=designated) should still include the segregated=* field.

Description, Motivation & Context
Cycle & Foot Refuge Island (
highway=cycleway+cycleway=traffic_island+foot=designated+bicycle=designated) does not offer thesegregatedfield, even though:foot=designated+bicycle=designatedcombination, does offer it, andhighway/cycleway/crossing/{marked,unmarked,uncontrolled,traffic_signals,bicycle_foot}and thehighway/path/crossing/*equivalents.So today the schema says segregation is a meaningful property of the crossing, and of the path leading up to it, but not of the refuge in the middle of that same crossing.
That does not look like a decision anyone made. The preset was added in 874cea8 with no
fieldskey at all, so it implicitly inheritedhighway/cycleway(plain Cycle Path) through preset-id nesting; #1855 later made that implicit inheritance explicit across the repo by script. The preset already declares"locationSetCrossReference": "{presets/highway/cycleway/bicycle_foot}"— it knows Cycle & Foot Path is its counterpart, it just does not inherit fields from it.This PR changes
fieldsto inherit fromhighway/cycleway/bicycle_foot.highway/path/traffic_island_sharedinherits its fields from this preset, so it is fixed by the same one-line change.Resulting field list for both
_sharedisland presets:Side effect worth flagging: this also drops
tunnel/namefrom the field list, because Cycle & Foot Path does not carry it. That seems right for a refuge island in the middle of a carriageway, but say the word and I will list the fields explicitly instead to keep it.The non-shared
highway/cycleway/traffic_islandandhighway/footway/traffic_islandpresets are deliberately untouched — without bothfootandbicycledesignated there is nothing to segregate.Related issues
There is no existing issue for this. Related:
AddCyclewaySegregationquest fires on these ways (element filter:highway=cycleway and foot ~ designated|yes, paved surface, nosegregatedyet — a refuge island tagged with this preset matches), so the two projects currently disagree about whether the tag applies here.highway=cycleway foot=designated bicycle=designated, same tag combination.segregatedwhen deselecting Cycle & Foot Path. See the open question at the bottom.Links and data
Relevant OSM Wiki links:
Key:segregated— "This key has no default value and should be tagged on all shared ways", so a data consumer cannot assume a value where it is missing.Tag:cycleway=traffic_island— in use, describes splitting acycleway=crossingat the island and movingcrossing:islandhandling onto the island way.Tag:footway=traffic_islandRelevant tag usage stats:
Mappers already tag
segregatedon refuge islands, and they tag it consistently. Of 8,641cycleway=traffic_islandways worldwide, 3,499 (40.5%) already carrysegregated— 3,016no, 481yes, 2 junk values. They are doing this without any field in iD.To check whether those values carry real information or are just noise on a 6-metre stub, I compared each island's value against every other
segregatedway sharing a node with it:AddCyclewaySegregationquestMedian island length is 6.0 m for
noand 7.2 m foryes, so theyesanswers are not just being given on unusually long islands — surveyors are reporting a genuine painted division across a short refuge, and ~19 times in 20 it matches the corridor it belongs to.A worked example: way/1372983397 in Tallinn (14.3 m,
segregated=yes,cycleway:width=2.6, separatecycleway:surface/footway:surface,check_date=2026-03-17). Its west end joins asegregated=noshared path; its east end joins ahighway=cycleway foot=noplus a parallelfootway=traffic_island, i.e. segregation expressed as two separate ways. Three different segregation states in ~40 m of one corridor — the island's value is not inferable from either neighbour.Method, for reproducibility: Overpass for the elements, then each way's full version history from the OSM API to find the version that first introduced
segregated, then that version's changeset from/api/0.6/changesets?changesets=…to readcreated_byandStreetComplete:quest_type. Base element pull is a 2026-07-24 Overpass snapshot; changeset metadata is live. Population is ways currently carrying both tags, so islands where either tag was later removed are not counted.Open question
Cycle & Foot Path lists
segregated: "*"in itsremoveTags(#910). I have deliberately not added an equivalentremoveTagsblock to the island presets, since SCHEMA.md notes that editors may already remove the old preset's field tags automatically and I would rather not widen this PR. Happy to add it if you would prefer the parity.Disclosure: this change and the analysis behind it were researched and drafted by Claude Opus 5, working at my direction.