Index: trunk/data/validator/geometry.mapcss
===================================================================
--- trunk/data/validator/geometry.mapcss	(revision 7813)
+++ trunk/data/validator/geometry.mapcss	(revision 7814)
@@ -3,4 +3,5 @@
 node[bridge?],
 node[sidewalk],
+node[footway],
 node[waterway=river],
 node[waterway=riverbank],
Index: trunk/data/validator/highway.mapcss
===================================================================
--- trunk/data/validator/highway.mapcss	(revision 7813)
+++ trunk/data/validator/highway.mapcss	(revision 7814)
@@ -90,2 +90,23 @@
   assertNoMatch: "way name=Foobarstraße";
 }
+
+/* footway, see #10851 */
+way[footway=left],
+way[footway=right],
+way[footway=both],
+way[footway=no] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "sidewalk";
+  fixChangeKey: "footway => sidewalk";
+  set footway_to_sidewalk;
+}
+way[footway=none] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "sidewalk=no";
+  fixRemove: "footway";
+  fixAdd: "sidewalk=no";
+  set footway_to_sidewalk;
+}
+way[footway][footway!=sidewalk][footway!=crossing]!.footway_to_sidewalk { /* do not trigger this rule if already one of the two previous rules applied */
+  throwWarning: tr("Value of ''{0}'' should either be ''{1}'' or ''{2}''. For sidewalks use ''{3}'' instead.", "{0.key}", "{1.value}", "{2.value}", "sidewalk=left|right|both|no");
+}
