Good point Graeme ! The docs aren't very helpful at this point.
I guess, that these attributes can/should be used to control, that your macro is in the right 'context' when getting called.
In other words: It isn't called (even when invoked by a global shortcut), if the required attribs don't match.
Imagine you've written a macro that relies on an active source buffer (editor control) and you want to do s.th. at the current cursor position. It's invoked by a shortcut, but e.g. the 'Defs'- tree widget has got the focus. You'll get a Slick stack trace as soon as you try to access an object, which is just not valid in the context of this tree widget (don't ask me for a example now).
That's just my experience... But it's worth to use'em (carefully).
Hope that I'm right (@Slickteam ?) and things are a bit clearer now.
HS2