It's pretty much the same as suite targets, but these targets as soon as defined get available in all the suites of the project.
If any of suite targets has the name as a shared one, the priority will be given to the local one. E.g. you have FOO: #foo1 target in the suite and FOO: #foo2 shared target. When you run the suite for the target FOO it will use selector #foo1