Index: /trunk/resources/data/defaultpresets.xml
===================================================================
--- /trunk/resources/data/defaultpresets.xml	(revision 19474)
+++ /trunk/resources/data/defaultpresets.xml	(revision 19475)
@@ -1527,4 +1527,7 @@
             <link wiki="Tag:cycleway=asl" />
             <key key="cycleway" value="asl" />
+            <optional>
+                <combo key="direction" text="Direction" values="forward,backward" values_sort="false" />
+            </optional>
         </item> <!-- Advanced stop line -->
         <item name="Mini-Roundabout" icon="presets/vehicle/restriction/mini_roundabout_left.svg" type="node" preset_name_label="true">
Index: /trunk/resources/data/validator/combinations.mapcss
===================================================================
--- /trunk/resources/data/validator/combinations.mapcss	(revision 19474)
+++ /trunk/resources/data/validator/combinations.mapcss	(revision 19475)
@@ -1159,2 +1159,15 @@
        assertNoMatch: "relation type=power power=circuit topology=branched";
 }
+
+/* #21927 */
+way[!cycleway][!cycleway:right][!cycleway:left][!cycleway:both][!cycleway:lanes] > node[cycleway=asl] {
+  throwWarning: tr("{0} not on cycleway", "{0.tag}");
+  group: tr("suspicious tag combination");
+}
+
+way[/^oneway(:bicycle)?$/!~/^yes$/] > node[cycleway=asl][!direction],
+way[!oneway][!oneway:bicycle] > node[cycleway=asl][!direction] {
+  throwWarning: tr("{0} without {1}", "{0.tag}", "{1.key}");
+  group: tr("missing tag");
+  suggestAlternative: "{0.tag} + {1.key}=*";
+}
