diff --git a/docs/harfbuzz-sections.txt b/docs/harfbuzz-sections.txt
index 3549ea4..bcad37a 100644
--- a/docs/harfbuzz-sections.txt
+++ b/docs/harfbuzz-sections.txt
@@ -715,12 +715,6 @@
 </SECTION>
 
 <SECTION>
-<FILE>hb-style</FILE>
-hb_style_tag_t
-hb_style_get_value
-</SECTION>
-
-<SECTION>
 <FILE>hb-unicode</FILE>
 HB_UNICODE_MAX
 hb_unicode_combining_class
diff --git a/src/gen-def.py b/src/gen-def.py
index b6b8b20..1ff3f48 100755
--- a/src/gen-def.py
+++ b/src/gen-def.py
@@ -36,6 +36,7 @@
 hb_draw_funcs_set_line_to_func
 hb_draw_funcs_set_move_to_func
 hb_draw_funcs_set_quadratic_to_func
+hb_style_get_value
 hb_font_get_var_coords_design
 hb_ot_layout_closure_lookups
 hb_ot_layout_closure_features""".splitlines ()
diff --git a/src/hb-style.cc b/src/hb-style.cc
index afa4a9f..69f5bee 100644
--- a/src/hb-style.cc
+++ b/src/hb-style.cc
@@ -25,6 +25,7 @@
 #include "hb.hh"
 
 #ifndef HB_NO_STYLE
+#ifdef HB_EXPERIMENTAL_API
 
 #include "hb-aat-fdsc-table.hh"
 #include "hb-ot-var-avar-table.hh"
@@ -36,6 +37,39 @@
 #include "hb-ot-face.hh"
 
 /**
+ * hb_style_tag_t:
+ * @HB_STYLE_TAG_ITALIC: Used to vary between non-italic and italic.
+ * A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can
+ * be interpreted as (fully) italic.
+ * @HB_STYLE_TAG_OPTICAL_SIZE: Used to vary design to suit different text sizes.
+ * Non-zero. Values can be interpreted as text size, in points.
+ * @HB_STYLE_TAG_SLANT: Used to vary between upright and slanted text. Values
+ * must be greater than -90 and less than +90. Values can be interpreted as
+ * the angle, in counter-clockwise degrees, of oblique slant from whatever the
+ * designer considers to be upright for that font design.
+ * @HB_STYLE_TAG_WIDTH: Used to vary width of text from narrower to wider.
+ * Non-zero. Values can be interpreted as a percentage of whatever the font
+ * designer considers “normal width” for that font design.
+ * @HB_STYLE_TAG_WEIGHT: Used to vary stroke thicknesses or other design details
+ * to give variation from lighter to blacker. Values can be interpreted in direct
+ * comparison to values for usWeightClass in the OS/2 table,
+ * or the CSS font-weight property.
+ *
+ * Defined by https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg
+ *
+ * Since: EXPERIMENTAL
+ **/
+typedef enum {
+  HB_STYLE_TAG_ITALIC		= HB_TAG ('i','t','a','l'),
+  HB_STYLE_TAG_OPTICAL_SIZE	= HB_TAG ('o','p','s','z'),
+  HB_STYLE_TAG_SLANT		= HB_TAG ('s','l','n','t'),
+  HB_STYLE_TAG_WIDTH		= HB_TAG ('w','d','t','h'),
+  HB_STYLE_TAG_WEIGHT		= HB_TAG ('w','g','h','t'),
+
+  _HB_STYLE_TAG_MAX_VALUE	= HB_TAG_MAX_SIGNED /*< skip >*/
+} hb_style_tag_t;
+
+/**
  * hb_style_get_value:
  * @font: a #hb_font_t object.
  * @style_tag: a style tag.
@@ -46,11 +80,12 @@
  *
  * Returns: Corresponding axis or default value to a style tag.
  *
- * Since: REPLACEME
+ * Since: EXPERIMENTAL
  **/
 float
-hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag)
+hb_style_get_value (hb_font_t *font, hb_tag_t tag)
 {
+  hb_style_tag_t style_tag = (hb_style_tag_t) tag;
   hb_face_t *face = font->face;
 
 #ifndef HB_NO_VAR
@@ -111,3 +146,4 @@
 }
 
 #endif
+#endif
diff --git a/src/hb-style.h b/src/hb-style.h
index ee84b72..1209c79 100644
--- a/src/hb-style.h
+++ b/src/hb-style.h
@@ -33,42 +33,10 @@
 
 HB_BEGIN_DECLS
 
-
-/**
- * hb_style_tag_t:
- * @HB_STYLE_TAG_ITALIC: Used to vary between non-italic and italic.
- * A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can
- * be interpreted as (fully) italic.
- * @HB_STYLE_TAG_OPTICAL_SIZE: Used to vary design to suit different text sizes.
- * Non-zero. Values can be interpreted as text size, in points.
- * @HB_STYLE_TAG_SLANT: Used to vary between upright and slanted text. Values
- * must be greater than -90 and less than +90. Values can be interpreted as
- * the angle, in counter-clockwise degrees, of oblique slant from whatever the
- * designer considers to be upright for that font design.
- * @HB_STYLE_TAG_WIDTH: Used to vary width of text from narrower to wider.
- * Non-zero. Values can be interpreted as a percentage of whatever the font
- * designer considers “normal width” for that font design.
- * @HB_STYLE_TAG_WEIGHT: Used to vary stroke thicknesses or other design details
- * to give variation from lighter to blacker. Values can be interpreted in direct
- * comparison to values for usWeightClass in the OS/2 table,
- * or the CSS font-weight property.
- *
- * Defined by https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg
- *
- * Since: REPLACEME
- **/
-typedef enum {
-  HB_STYLE_TAG_ITALIC		= HB_TAG ('i','t','a','l'),
-  HB_STYLE_TAG_OPTICAL_SIZE	= HB_TAG ('o','p','s','z'),
-  HB_STYLE_TAG_SLANT		= HB_TAG ('s','l','n','t'),
-  HB_STYLE_TAG_WIDTH		= HB_TAG ('w','d','t','h'),
-  HB_STYLE_TAG_WEIGHT		= HB_TAG ('w','g','h','t'),
-
-  _HB_STYLE_TAG_MAX_VALUE	= HB_TAG_MAX_SIGNED /*< skip >*/
-} hb_style_tag_t;
-
+#ifdef HB_EXPERIMENTAL_API
 HB_EXTERN float
-hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag);
+hb_style_get_value (hb_font_t *font, hb_tag_t style_tag);
+#endif
 
 HB_END_DECLS
 
diff --git a/test/api/test-ot-face.c b/test/api/test-ot-face.c
index 155d1ff..fb31ed2 100644
--- a/test/api/test-ot-face.c
+++ b/test/api/test-ot-face.c
@@ -131,11 +131,13 @@
   hb_ot_name_get_utf16 (face, cp, NULL, NULL, NULL);
   hb_ot_name_get_utf32 (face, cp, NULL, NULL, NULL);
 
+#if 0
   hb_style_get_value (font, HB_STYLE_TAG_ITALIC);
   hb_style_get_value (font, HB_STYLE_TAG_OPTICAL_SIZE);
   hb_style_get_value (font, HB_STYLE_TAG_SLANT);
   hb_style_get_value (font, HB_STYLE_TAG_WIDTH);
   hb_style_get_value (font, HB_STYLE_TAG_WEIGHT);
+#endif
 
   hb_ot_var_get_axis_count (face);
   hb_ot_var_get_axis_infos (face, 0, NULL, NULL);
diff --git a/test/api/test-style.c b/test/api/test-style.c
index 9225a0a..b9a406b 100644
--- a/test/api/test-style.c
+++ b/test/api/test-style.c
@@ -22,6 +22,7 @@
  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  */
 
+#ifdef HB_EXPERIMENTAL_API
 #include "hb-test.h"
 
 #include <hb.h>
@@ -30,6 +31,12 @@
 
 #define assert_cmpfloat(n1, n2) g_assert_cmpint ((int) (n1 * 100.f), ==, (int) (n2 * 100.f))
 
+#define HB_STYLE_TAG_ITALIC		HB_TAG ('i','t','a','l')
+#define HB_STYLE_TAG_OPTICAL_SIZE	HB_TAG ('o','p','s','z')
+#define HB_STYLE_TAG_SLANT		HB_TAG ('s','l','n','t')
+#define HB_STYLE_TAG_WIDTH		HB_TAG ('w','d','t','h')
+#define HB_STYLE_TAG_WEIGHT		HB_TAG ('w','g','h','t')
+
 static void
 test_empty_face (void)
 {
@@ -178,3 +185,6 @@
 
   return hb_test_run ();
 }
+#else
+int main () {}
+#endif
