There are two common reasons for this error, although they are not exhausted here, they are the easiest to diagnose.
Usually it happens because one of the files required by WordPress, either of themes or of plugins, is emitting text although it seems incredible, only to have characters outside the tags
To avoid this, you must first verify that no PHP file has the closing tag ?>
at the end. That means that you should not have HTML output, or blank spaces (even a simple line break counts as white space), after closing. For that reason the simplest thing is that no file of functions of the theme or plugins, has the closing ?>
at the end, since this only you need it, when later you want to put HTML or text in the browser, but exactly that is what generates the error you see.
The second one is a bit more complicated and it depends a lot that the text editor you are using does not betray you and put (invisible) characters before the <?php
tag, because of your error message: output started at ... a-sub-site-teaser-widget/a-sub-site-teaser-widget.php: 1
just that seems to be the case what do you have on line 1 of that file? .
The link suggested by Wilfredo It has more cases, but in essence it is what I indicate, and almost certainly your editor is putting invisible marks before the PHP code and that is why the error. In specific you may have to locate the "Byte Order Mark", and This page (with a tip for Mac) may have the practical solution you're looking for.