Peel, halve and slice the onion. Drain and halve the artichoke hearts.
Wash, quarter and core the tomatoes, then dice the flesh. Roughly chop the olives. Wash the basil, shake dry and finely chop the leaves.
Peel the orange and cut out the segments from between the ribs.
Mix the onions, artichokes, tomatoes, olives, basil and orange segments with 2 tbsp oil, the vinegar, salt and pepper. Leave to stand for 30 minutes.
Peel the garlic. Wash the rosemary and shake dry. Season the fish fillets with salt and pepper.
Heat the remaining oil in a griddle pan and cook the fish with the garlic and rosemary for 2 minutes on each side. Place the fish fillets on the artichoke salad. Serve with roast potatoes, if desired.