UPDATE:
userChrome.css controls the look of abrowser's windows and userContent.css
control the default appearance of the content on websites.
It seems that userChrome.css does require "! important" to work, so it's fine
to add it since it won't affect the content of website as userContent.css
does.
Therefor you should use the following code in userChrome.css:
button, input[type="submit"], input[type="button"] {
color: black ! important;
}
And leave userContent.css as before:
button, input[type="submit"], input[type="button"] {
color: black;
}
I'll open a bug report for this.