Make font-weight: lighter (bolder) always select the next lighter (heavier) member of the selected family, if available, rather than just increment the font-weight value. Per CSS2.1:
"The computed value of "font-weight" is either:
- one of the legal number values, or
- one of the legal number values combined with one or more of the relative values (bolder or lighter). This type of computed values is necessary to use when the font in question does not have all weight variations that are needed."
for an example, see attachment #12838 [details] & attachment #12839 [details] (Helvetica Neue "lighter x 2" should be same weight as FontWeight100)
*** Bug 25914 has been marked as a duplicate of this bug. ***
*** Bug 33559 has been marked as a duplicate of this bug. ***
According to the spec, `bolder` and `lighter` snap to the weights of 100, 400, 700, and 900. The rules for this behavior is indicated by the chart at http://www.w3.org/TR/css3-fonts/#bolderlighter
This was recently addressed in the Chromium project. Perhaps a similar solution exists in WebKit land? https://chromiumcodereview.appspot.com/15994009
That Chrome link describes how they don't use the font's weights to determine what "lighter" and "bolder" mean. They match the spec here, just like WebKit does. I've migrated this issue to https://github.com/w3c/csswg-drafts/issues/6847, because the spec needs to change before browsers can change.