diff --git a/R/add_header_above.R b/R/add_header_above.R
index 90d018a..29ab6d7 100644
--- a/R/add_header_above.R
+++ b/R/add_header_above.R
@@ -35,7 +35,7 @@
 # HTML
 htmlTable_add_header_above <- function(kable_input, header = NULL) {
   if (is.null(header)) return(kable_input)
-  table_info <- magic_mirror(kable_input)
+  kable_attrs <- attributes(kable_input)
   kable_xml <- read_xml(as.character(kable_input), options = c("COMPACT"))
   kable_xml_thead <- xml_tpart(kable_xml, "thead")
 
@@ -53,7 +53,7 @@
   xml_add_child(kable_xml_thead, new_header_row, .where = 0)
   out <- structure(as.character(kable_xml), format = "html",
                    class = "knitr_kable")
-  attr(out, "original_kable_meta") <- table_info
+  attributes(out) <- kable_attrs
   return(out)
 }
 
diff --git a/R/kable_styling.R b/R/kable_styling.R
index 98e6039..5460bfa 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -100,7 +100,7 @@
                               position = c("center", "left", "right",
                                            "float_left", "float_right"),
                               font_size = NULL) {
-  table_info <- magic_mirror(kable_input)
+  kable_attrs <- attributes(kable_input)
   kable_xml <- read_xml(as.character(kable_input), options = c("COMPACT"))
 
   # Modify class
@@ -158,7 +158,7 @@
 
   out <- structure(as.character(kable_xml), format = "html",
                    class = "knitr_kable")
-  attr(out, "original_kable_meta") <- table_info
+  attributes(out) <- kable_attrs
   return(out)
 }
 
diff --git a/R/row_spec.R b/R/row_spec.R
index c19044c..1e12327 100644
--- a/R/row_spec.R
+++ b/R/row_spec.R
@@ -5,7 +5,8 @@
 #' italic text.
 #'
 #' @param kable_input Output of `knitr::kable()` with `format` specified
-#' @param row A numeric value indicating which row to be selected
+#' @param row A numeric value indicating which row to be selected. You don't
+#' need to count in header rows or group labeling rows.
 #' @param bold A T/F value to control whether the text of the selected row
 #' need to be bolded.
 #' @param italic A T/F value to control whether the text of the selected row
diff --git a/tests/visual_tests/column_row_spec_html.Rmd b/tests/visual_tests/column_row_spec_html.Rmd
index a54ea5f..5ef4f21 100644
--- a/tests/visual_tests/column_row_spec_html.Rmd
+++ b/tests/visual_tests/column_row_spec_html.Rmd
@@ -41,6 +41,17 @@
   kable_styling(full_width = F) %>%
   column_spec(2, "5cm", bold = T) %>%
   column_spec(4, "3cm", italic = T)  %>%
-  row_spec(1, italic = T)
+  row_spec(1, bold = T)
 ```
 
+```{r}
+dt <- mtcars[1:5, 1:6]
+dt$wt <- paste(dt$wt, "%")
+dt$mpg <- paste(dt$mpg, "&")
+dt$cyl <- paste(dt$cyl, "$")
+
+kable(dt, "html") %>%
+  kable_styling(full_width = F) %>%
+  column_spec(7, bold = T) %>%
+  row_spec(5, bold = T, italic = T)
+```
diff --git a/tests/visual_tests/column_row_spec_pdf.Rmd b/tests/visual_tests/column_row_spec_pdf.Rmd
index 07d2ca4..4b9b31e 100644
--- a/tests/visual_tests/column_row_spec_pdf.Rmd
+++ b/tests/visual_tests/column_row_spec_pdf.Rmd
@@ -52,6 +52,7 @@
 dt$cyl <- paste(dt$cyl, "$")
 
 kable(dt, "latex", booktabs = T) %>%
+  group_rows("Group 1", 2, 4) %>%
   column_spec(7, bold = T) %>%
   row_spec(5, bold = T, italic = T)
 ```
