I held out for a while, but data- attributes really do make writing reusable JavaScript components SO much easier - if you use them responsibly I don't see any downside to them at all.
I agree, I was talking about non data- custom attributes, but others have pointed out that you can use the data- versions as well, which is acceptable.