If I am interpreting your question correctly, there are 5 treatment levels. One group is control, one group is, say, standard treatment, and 3 groups are investigational treatment at 3 different doses. You have a sample of fish that have been randomized 1:2:1:1:1 in this experiment for the 5 groups. You are interested in whether the investigational treatment is better than standard treatment and/or control.
If indeed your experiment follows as I've described, you ought to break this out into multiple comparisons. No need for Bonferroni correction, since the substantive question "Is treatment better?" is approximately the same in all possible comparisons. T-tests do indeed handle unequal variances. However, just as ordinary linear regression adjusting for a binary predictor is an analogue of a t-test with equal variances, generalized estimating equations is an analogue of the t-test with unequal variances. You can correct for heteroscedasticity by calculating robust standard errors which is either easily supplied as an option in SPSS or else SPSS is horribly outdated.
This just goes to show that when you test for assumptions, it's very difficult to interpret the meaning of the p-value. The assumption was a problem, you find the assumptions aren't met, now you have two problems. Better to have no assumptions at all.
When you have heteroskedasticity, it doesn't make sense to try to check normality of the entire set of residuals, though you could still check groups individually (with corresponding loss of power of course).
On the other hand, it doesn't really make sense to formally test either normality or heterosckedasticity when checking assumptions, since the hypothesis tests answer the wrong question.
This is because your data aren't actually normal (and it's also very unlikely that your populations have identical variance) - so you already know the answer to the question the hypothesis test checks for. With a nice large sample like you have, the chance that a nice powerful test like the Shapiro-Wilk doesn't pick it up is small - so you'll reject as non-normal data from distributions that will have little impact on the signficance level or the power. That is, you'll tend to reject normality - even at quite small significance levels - when it really doesn't matter. The test is likely to reject when it matters least (i.e. when you have a big sample).
What you actually want to know is the answer to a different question than the test answers - something like "How much does this affect my inference?". The hypothesis test doesn't address that question - it doesn't consider the impact of the non-normality, only your ability to detect it.
Further, when you have a sequence "do this equal-variance normal theory analysis if I don't reject all these tests, otherwise do this analysis if I reject that one, this other analysis if I reject the other one and something else if I reject both" we must consider the properties of the whole scheme. Such programs of testing usually do worse (in terms of test bias, accuracy of significance level and very often, of power) than just assuming you'd rejected both tests.
So you recommend to just stick with the ANOVA and consider no assumptions violated?
Not quite. In fact, if anything my last sentence above suggests that you assume heteroskedasticity and normality are violated from the start. Either one alone being violated is relatively easy to deal with, both together is a little trickier (but still possible). However, in your case I think you're probably okay, since I think you needn't worry about one of the two:
Normality may not be such a problem - the considerations would be what kind of non-normality might you have, and how strongly non-normal, and with how large a sample size?
Your sample size seems reasonably large and the distribution pretty mildly left skew and light-tailed, though that assessment may be confounded with the heteroskedasticity. However, if you had good understanding of the properties of what was being measured - which you may well have - or information from similar studies, you might be able to make an a priori assessment on that basis and so better able to choose an appropriate procedure (though I'd still suggest diagnostic checking).
Since your data are probability estimates, they'll be bounded. In fact the left skewness may simply be caused by some probability assessments getting relatively close to 100. If that's the case, you must also tend to doubt your assumption of linearity, and that will be a likely cause of heteroskedasticity as well. If my guess about getting close to the upper bound is right you'll tend to see lower spread among the groups with higher mean.
You might consider an analysis suited to continuous proportions, perhaps a beta-regression - at least if you have no data exactly on either boundary. (An alternative might be a transformation, but models that deal with the data you have tend to be both easier to defend and more interpretable.)
With your decent-sized sample, you are probably safe enough on non-normality, but heteroskedasticity might be more of an issue - in particular, heteroskedasticity issues don't decrease with sample size.
On the other hand, if your sample sizes are equal (or at least very nearly equal), heteroskedasticity is of little consequence. Your tests will be little impacted in the case of equal sample sizes.
If equal-sample-sizes are not the case, I suggest you:
i) don't assume heteroskedasticity will simply be okay
ii) don't formally test it, for the same reasons outlined above (testing answers the wrong question)
Instead I suggest you start with the assumption that the variances differ - whether it's to use something like the Welch approach (I can't say I know how that works for 2x2 off the top of my head, but it should be quite possible to make it work in that case, since it only affects the calculation of residual variance and its df), or to implement your ANOVA in a regression and move to something like heteroskedasticity-consistent standard errors (which is used more widely in areas like econometrics).
Best Answer
You can run Levene's test, but do not run Levene's test. See Zimmerman (2004) below. It is essentially a harmful waste of time. When you use an alternative test after Levene's test, the nominal error rate of that test is altered. Using a Welch-type adjustment has been shown to be close in power to its classic parametric equivalent under homogeneity of variance, and more powerful under heterogeneity of variance. So it might as well be used by default.
Here are a couple of things you can do. If you have a balanced design (equal sample sizes in your cells), then you should be fine, and can get away with running your two-way ANOVA. If you do not have a balanced design, what is the ratio of the smallest variance to your largest variance. This is cell-level variance. If it is high (above 10), then you have a problem.
You should just go ahead and apply the Welch-James procedure, especially if your data are normal. See the article below by Vallejo, Fernández and Livacic-Rojas (2010).
Zimmerman, D. W. (2004). A note on preliminary tests of equality of variances. British Journal of Mathematical and Statistical Psychology, 57(1), 173–181. https://doi.org/10.1348/000711004849222
Vallejo, G., Fernández, M. P., & Livacic-Rojas, P. E. (2010). Analysis of unbalanced factorial designs with heteroscedastic data. Journal of Statistical Computation and Simulation, 80(1), 75–88. https://doi.org/10.1080/00949650802482386